Angular.js是如何处理事件绑定的,比如"ng-click"
How does Angular.js handle event bindings such as "ng-click"?
Angular.js如何处理像"ng-click"这样的事件绑定?
如果我使用Chrome开发工具检查DOM中的HTML输出,我只看到2个类添加到具有"ng-click"指令的元素,"ng-scope"answers"ng-binding"。Angular如何绑定到DOM来拦截这些呢?它附加到最顶层的元素,并保持一个大的对象在内存映射事件到DOM元素,他们注册到,并利用事件冒泡?还是别的什么?
AngularJS做脏检查,每次AngularJS发现一个指令,它就会设置一个$watch来查看变化。
$watch列表是一组表达式,自上次迭代以来可能已经更改。如果检测到更改,则调用$watch函数,该函数通常使用新值更新DOM。一旦Angular的$digest循环结束,执行就会离开Angular和JavaScript上下文。随后浏览器会重新呈现DOM以反映任何更改。
简单地说,有一种机制可以创建一个需要绑定的指令列表,在$digest循环期间,列表将在更改时进行检查,如果有更改,浏览器会重新呈现DOM,并且它将反映到浏览器中。
这是一个很短的解释,你可以在这里找到更多:
http://docs.angularjs.org/guide/concepts运行时
ng-[eventname]-指令的工作原理是做一个element.bind
,其中元素是一个jQuery/jqLite元素。这个绑定方法通过调用一个元素来工作。addEventListener(至少在Chrome中)。通过检查DOM,您将看不到这个事件监听器。
相关文章:
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- "工具提示"jQuery插件坏了
- "锻造;React中的表达式
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 如何提取“;href"最近列表项中的属性值
- 超链接在新的文档窗口中返回JSON.我希望它回到一个变量,比如response"