【发布时间】:2013-12-12 23:46:11
【问题描述】:
在这个例子中,我有一个带有附加指令的输入。该指令旨在在输入旁边显示消息。还有另一个输入和一个按钮来添加消息。 一旦显示了一些消息,关注带有附加指令的输入应该会清除这些消息。 http://jsfiddle.net/viro/WBqxf/
所以我有一个带有独立模型的指令,并且当具有该指令的元素成为焦点时,我正在尝试更新模型。 看来我必须在范围内包装事件回调。如果我想更新模型,$apply:
element.on('focus',function(){
scope.$apply(function(){
console.log("focus !");
scope.tstMsg=[];
})
});
我想我必须将它包装在 $apply 中,因为我使用的是 jqlite 事件回调,并且我猜它们在“外部”angularJS 运行,但我没有在文档中明确说明。
我做得对吗?
有没有更好的方法?
【问题讨论】:
-
使用
ng-focus并为外部事件处理程序节省额外的编码 docs.angularjs.org/api/ng.directive:ngFocus -
但是对于每个附加了指令的元素,我希望在焦点上具有相同的行为,而不管元素所在的控制器。使用 ngFocus,我必须为每个元素创建一个重置消息数组的函数,如果它可以由指令自动执行,那会很乏味,不是吗?
标签: angularjs angularjs-directive jqlite angularjs-model