繁体   English   中英

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

[英]How does Angular.js handle event bindings such as “ng-click”?

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

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

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

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

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

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

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

ng- [eventname] -directives通过执行element.bind ,其中element是jQuery / jqLit​​e元素 绑定方法通过调用element.addEventListener(至少在Chrome中)来工作。 您不会通过检查DOM来看到eventlistener。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM