0

이 지시어에이 jQuery 자동 완성 플러그인을 적용했습니다. https://github.com/devbridge/jQuery-Autocomplete. 최대각도 지시어가 양방향 데이터 바인딩을 중지합니다.

App.directive('autocomplete', -> 
    return { 
    restrict: 'A', 
    link: ($scope, elem, attr) -> 
     console.log(attr.autocomplete) 
     elem.autocomplete({ 
     serviceUrl: '/videos/autocomplete/' + attr.autocomplete 
     }) 
    } 
) 

을 그러나, 나는 자동 완성 목록에서 무언가를 선택하면 두 가지 방법으로 데이터 바인딩 망쳐 놨, 만 입력 업데이트됩니다

나는 작동하는 지시어가있다.

해결 방법에 대한 의견이 있으십니까?

+0

이 coffeescript입니까? – dandavis

+1

변경 사항이 있지만 jquery 플러그인은 다이제스트를 트리거하지 않습니다. 그래서 뭔가 변경되면'$ scope. $ digest'를 호출하는 이벤트 핸들러를 추가해야합니다. – cgTag

+0

@dandavis 물론입니다! – chintanparikh

답변

0

나는 많은 사람들이 내가 각도는가에 의존하는 우리의 객체의 변화를 관찰 할 수있는 방법이있다 :

말하는 겁니다이 위대한 게시물에 대해 알고하는 것이 유용 할 수 있다고 생각하기 때문에,이을 Necroposting 자바 스크립트의 "턴 기반"특성. 이것은 this awesome article by Jim Hoskins에서 매우 명확하게 설명됩니다.

기본적으로 Angular는주기 변화를 확인하지만 그주기가 바뀌면 다시 검사를 수행해야한다는 것을 알 수 없습니다. (아주 simplicistic explaination, 다시, the article 참조)

결론, 우리는 우리가 뭔가를 변경 있음을 알려, 그래서 당신의 선택은 action()

당신은 간단하게 포장 할 필요가 수행하는 handler()를 트리거 가정 해 봅시다 필요 action$scope.$apply

function handler(){ 
    $scope.$apply(function(){ 
     action(); 
    }); 
} 
관련 문제