AngularJS - $ destroy是否會移除事件偵聽器?



0 Answers

Question

https://docs.angularjs.org/guide/directive

通過監聽此事件,可以刪除可能導致內存洩漏的事件偵聽器。 註冊到範圍和元素的監聽器在被銷毀時自動清理,但是如果您在服務上註冊了監聽器,或者在未被刪除的DOM節點上註冊了監聽器,則必須自行清理它或你冒險引入內存洩漏。

最佳實踐:指令應該自行清理。 您可以使用element.on('$ destroy',...)或作用域。$ on('$ destroy',...)在刪除指令時運行清理函數。

題:

我有一個element.on "click", (event) ->在我的指令裡面:

  1. 當指令被銷毀時,是否有任何對element.on內存引用來防止它被垃圾收集?
  2. Angular文檔聲明我應該使用一個處理程序來移除$destroy發送的事件上的事件偵聽器。 我的印像是, destroy()移除了事件監聽器,這是不是這種情況?



Related