簡體   English   中英

Angularjs指令刪除手表?

[英]Angularjs directive remove watch?

我有一個$scope.$watch在指令的控制器中聲明。 當我更改頁面並刪除指令時,我是否必須手動銷毀方式? 如果是這樣,我如何檢測指令何時被刪除?

這取決於范圍,而不是指令。 如果范圍被破壞,那么它的所有美元觀察者都會死掉它。 在頁面更改時,您的范圍將被角度破壞,因此您應該是安全的。

當一個范圍死亡時,它會產生一個$ destroy事件。 你可以看:

$scope.$on('$destroy', callback);

並且您可以通過調用它返回的函數手動從范圍中分離$ watchers:

var sentinel = $scope.$watch('expression', callback);
sentinel(); // kill sentinel

你也可以用$ on來做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM