Angular.js如何处理事件绑定,例如"ng-click"?

use*_*166 4 javascript angularjs angularjs-directive

Angular.js如何处理事件绑定,例如"ng-click"?

如果我使用Chrome Dev Tools检查DOM中的HTML输出,我只会看到2个类添加到具有"ng-click"指令的元素,"ng-scope"和"ng-binding".Angular如何绑定到DOM来拦截这些?它是否附加到最顶层的元素,并将内存映射事件中的大对象保存到它们注册的DOM元素,并使用事件冒泡?或者是其他东西?

W3b*_*Art 5

AngularJS进行脏检查,每当AngularJS找到一个指令时,它会设置$ watch来查看更改.

$ watch列表是一组表达式,自上次迭代后可能已更改.如果检测到更改,则调用$ watch函数,该函数通常使用新值更新DOM.一旦Angular $ digest循环完成,执行就会离开Angular和JavaScript上下文.接下来是浏览器重新呈现DOM以反映任何更改.

简单来说,有一个机制可以创建一个需要绑定的指令列表,在$ digest循环中,如果浏览器重新呈现DOM并且它将被反映到更改中,则将检查列表的更改.浏览器.

这是一个非常简短的解释,你可以在这里找到更多:

http://docs.angularjs.org/guide/concepts#runtime