我正试图在AngularJS中实现一个简单的指令。特别是我想开发一个加载器按钮,在按下时改变它的方面,我想在需要它的应用程序的所有页面中重用它。从AngularJS中的指令中删除事件监听器
我已经阅读了开发人员指南:
“有AngularJS发出一些特殊事件,当已经编制与角的编译器DOM节点被破坏,它会发出$破坏事件。同样,当一个AngularJS范围被销毁时,它会向监听范围广播一个$ destroy事件,通过监听这个事件,你可以移除可能导致内存泄漏的事件监听器,注册到范围和元素的监听器会自动清理销毁了,但是如果你在一个服务上注册了一个监听器,或者在一个没有被删除的DOM节点上注册了一个监听器,那么你必须自己清理它,否则你可能会引入内存泄漏。“
在我的链接功能,我已经把这个代码的事件侦听器:
var onLoaderButtonClickEvent = element.on('click', function(){
//Some stuff
});
现在,我有没有考虑到作为一个DOM元素上的监听(所以我必须将其删除)或不?我有点困惑。
我认为我没有删除监听器,因为它是在“元素”上。这是对的吗?
THX所有
为什么你认为你将不得不删除监听器? –
原因我不了解之前编写的文档中提到的“元素”和DOM节点之间的区别。我认为像element.on('click',someFunction)这样的事件不会被删除,而像$('#somenode')。on('click',somefunction)这样的事件必须被删除。这是对的吗? – ira