Dav*_* V. 6 angularjs angularjs-directive jqlite angularjs-model
在这个例子中,我有一个附加指令的输入.该指令用于显示输入旁边的消息.还有另一个输入和一个添加消息的按钮.显示某些消息后,使用附加指令关注输入应清除消息. http://jsfiddle.net/viro/WBqxf/
所以我有一个带有隔离模型的指令,我正在尝试在具有指令的元素成为焦点时更新模型.好像我必须在事件范围内包装事件回调.$ apply如果我想更新模型:
element.on('focus',function(){
scope.$apply(function(){
console.log("focus !");
scope.tstMsg=[];
})
});
Run Code Online (Sandbox Code Playgroud)
我想我必须将它包装在$ apply中,因为我正在使用jqlite事件回调,我猜它们在"外部"angularJS中运行,但我没有在文档中明确说明它.
我做得对吗还是黑客攻击?
有没有更好的方法呢?
scope.$apply 将导致 $digest 运行,因此作用域上的任何观察者都会检查更改并在适当的情况下触发。因为正如您所说,您只是绑定到一个事件(在适当的情况下只执行 addEventListener/attachEvent ),在此上下文中执行 range.$apply 是有效的。
| 归档时间: |
|
| 查看次数: |
7904 次 |
| 最近记录: |