이 예제에서는 첨부 된 지시문이있는 입력이 있습니다. 이 지시문은 입력 옆에 메시지를 표시하기위한 것입니다. 다른 입력과 메시지를 추가하는 버튼이 있습니다. 일부 메시지가 표시되면 첨부 된 지시문을 사용하여 입력에 초점을 맞춰 메시지를 지워야합니다. http://jsfiddle.net/viro/WBqxf/
그래서 고립 된 모델로 지시문을 가지고 있으며, 지시어가있는 요소가 포커스를 맞추면 모델을 업데이트하려고합니다. 내가 범위에서 이벤트 콜백을 포장해야 할 것 같다 $ I 모델 업데이트 할 경우에 적용됩니다.
element.on('focus',function(){
scope.$apply(function(){
console.log("focus !");
scope.tstMsg=[];
})
});
나는 내가 jqlite 이벤트 콜백와 I를 사용하고 있기 때문에 적용 $ 그것을에서 포장이 있다고 가정을 "외부"angularJS를 실행한다고 생각하지만 문서에 명시되어 있지는 않습니다.
맞나요? 아니면 해킹입니까?
더 좋은 방법이 있습니까?
은'ng-focus'를 사용하고 extrenal 이벤트 핸들러를위한 별도의 코딩을 저장하지 않습니다 http://docs.angularjs.org/api/ng.directive:ngFocus – charlietfl
그러나 지시문이 연결된 모든 요소에 대해 동일한 동작을 원합니다 요소가있는 제어기에 관계없이 초점을 맞 춥니 다. ngFocus를 사용하면 모든 요소에 대해 메시지 배열을 재설정하는 함수를 만들 수 있습니다. 지시문에 의해 자동화 될 수 있다면 지루한 일입니다. 그렇지 않습니까? –