Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular.js如何处理事件绑定,例如;ng click";?_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

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

Javascript Angular.js如何处理事件绑定,例如;ng click";?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,Angular.js如何处理事件绑定,例如“ng click” 如果我使用chromedev工具检查DOM中的HTML输出,我只会看到在元素中添加了两个类,它们具有“ng click”指令、“ng scope”和“ng binding”。Angular如何绑定到DOM来拦截这些数据?它是否附加到最顶层的元素,并在内存中保留一个大对象,将事件映射到它们注册到的DOM元素,并利用事件冒泡?或者别的什么?ng-[eventname]-指令通过执行元素.bind来工作,其中元素是jQuery/。这通过调

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


如果我使用chromedev工具检查DOM中的HTML输出,我只会看到在元素中添加了两个类,它们具有“ng click”指令、“ng scope”和“ng binding”。Angular如何绑定到DOM来拦截这些数据?它是否附加到最顶层的元素,并在内存中保留一个大对象,将事件映射到它们注册到的DOM元素,并利用事件冒泡?或者别的什么?

ng-[eventname]-指令通过执行
元素.bind来工作,其中元素是jQuery/。这通过调用element.addEventListener(至少在Chrome中)来实现。通过检查DOM,您将看不到eventlistener。

AngularJS执行脏检查,每次AngularJS找到指令时,它都会设置$watch以查看更改

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

简单地说,有一种机制可以创建一个需要绑定的指令列表,在$digest循环期间,该列表将在发生更改时进行检查,如果有更改,浏览器将重新呈现DOM,并将其反映到浏览器中

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


您可以在开发工具的右面板底部的“事件监听器”下看到事件监听器