Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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
Angularjs Angular$destroy—文档建议手动解除绑定事件,但代码显示了其他情况_Angularjs_Event Handling - Fatal编程技术网

Angularjs Angular$destroy—文档建议手动解除绑定事件,但代码显示了其他情况

Angularjs Angular$destroy—文档建议手动解除绑定事件,但代码显示了其他情况,angularjs,event-handling,Angularjs,Event Handling,通过侦听此($destroy)事件,可以删除可能导致内存泄漏的事件侦听器。注册到作用域和元素的侦听器在销毁时会自动清理,但如果在服务上注册了侦听器,或者在未被删除的DOM节点上注册了侦听器,则必须自己清理,否则可能会导致内存泄漏 查看$destroy的代码,它似乎解除了eventlisteners的绑定: forEach(this.$$listenerCount,bind(null,递减listenerCount,this)) 那么,为什么Angular.js文档告诉我在发出$destroy事

通过侦听此($destroy)事件,可以删除可能导致内存泄漏的事件侦听器。注册到作用域和元素的侦听器在销毁时会自动清理,但如果在服务上注册了侦听器,或者在未被删除的DOM节点上注册了侦听器,则必须自己清理,否则可能会导致内存泄漏

查看
$destroy
的代码,它似乎解除了eventlisteners的绑定:

forEach(this.$$listenerCount,bind(null,递减listenerCount,this))


那么,为什么Angular.js文档告诉我在发出
$destroy
事件时手动删除事件侦听器呢

事件可以通过以下方式绑定:

  • 标记内(绑定到内置数据绑定的命名函数调用)
  • 在指令中(绑定到自定义数据绑定的匿名函数)
  • 在控制器中(绑定到angular.element的DOM事件处理程序)
  • 在服务中(绑定到angular.module的DOM事件处理程序)
Angular具有以下事件:

$viewContentLoaded $includeContentRequested $includeContentLoaded $includeContentError $routeChangeStart $routeChangeSuccess $routeChangeError $routeUpdate $locationChangeStart $locationChangeSuccess $destroy onabort onautocomplete onautocompleteerror oncancel oncanplay oncanplaythrough onchange onclick onclose oncontextmenu oncuechange ondblclick ondrag ondragend ondragenter ondragexit ondragleave ondragover ondragstart ondrop ondurationchange onemptied onended oninput oninvalid onkeydown onkeypress onkeyup onloadeddata onloadedmetadata onloadstart onmousedown onmouseenter onmouseleave onmousemove onmouseout onmouseover onmouseup onmousewheel onpause onplay onplaying onprogress onratechange onreset onseeked onseeking onselect onshow onsort onstalled onsubmit onsuspend ontimeupdate ontoggle onvolumechange onwaiting onblur onerror onfocus onload onresize onscroll onafterprint onbeforeprint onbeforeunload onhashchange onlanguagechange onmessage onoffline ononline onpagehide onpageshow onpopstate onstorage onunload onreadystatechange $viewContentLoaded 已申请500美元 $includeContentLoaded $includeContentError $routeChangeStart $routeChangeSuccess $routeChangeError $routeUpdate $locationChangeStart $locationChangeSuccess $destroy DOM具有以下事件:

$viewContentLoaded $includeContentRequested $includeContentLoaded $includeContentError $routeChangeStart $routeChangeSuccess $routeChangeError $routeUpdate $locationChangeStart $locationChangeSuccess $destroy onabort onautocomplete onautocompleteerror oncancel oncanplay oncanplaythrough onchange onclick onclose oncontextmenu oncuechange ondblclick ondrag ondragend ondragenter ondragexit ondragleave ondragover ondragstart ondrop ondurationchange onemptied onended oninput oninvalid onkeydown onkeypress onkeyup onloadeddata onloadedmetadata onloadstart onmousedown onmouseenter onmouseleave onmousemove onmouseout onmouseover onmouseup onmousewheel onpause onplay onplaying onprogress onratechange onreset onseeked onseeking onselect onshow onsort onstalled onsubmit onsuspend ontimeupdate ontoggle onvolumechange onwaiting onblur onerror onfocus onload onresize onscroll onafterprint onbeforeprint onbeforeunload onhashchange onlanguagechange onmessage onoffline ononline onpagehide onpageshow onpopstate onstorage onunload onreadystatechange 事件 自动完成 自动完成错误 oncancel oncanplay oncanplaythrough 一旦改变 onclick 一次 oncontextmenu 一次性改变 ondblclick 昂特拉格 昂特拉根德 昂德拉金特 昂德拉出口 昂特拉格利夫 昂德拉戈弗 昂德拉格斯特 昂德罗普 持续时间变化 空的 合一 输入 奥尼瓦利德 onkeydown 按键 onkeyup 加载数据 加载元数据 空载起动 昂穆斯敦 OnMouseCenter 请假 鼠标移动时 鼠标移出时 安穆塞弗 鼠标放开 移动木马 暂停 在线游戏 玩 进展 汇率变动 重新设置 偶然 会见 当选 onshow 安索特 统计 事件 暂停 实时更新 自转 onvolumechange 等待 事件 一个错误 聚焦事件 装载 调整大小 昂斯克罗尔 onafterprint 印前 在卸载之前 onhashchange 在线语言更改 onmessage 奥诺夫林 在线 网页隐藏 网页秀 onpopstate 储存 昂洛德 onreadystatechange 参考资料


它告诉您不要销毁侦听器,而是销毁$timeout或$interval或$http etcNo,它声明
您可以删除事件侦听器。这只是
$timeout或$interval
的一个例子。还有更多的事件侦听器,但是他们不需要给出每个事件侦听器的示例。如果您已经注册了$rootScope watchers,那么这就是$rootScope watchers。读但是部分