簡體   English   中英

檢測指令是否已從DOM中刪除

[英]Detect if directive was removed from DOM

我有一個AngularJS指令,如果該指令的元素已從DOM中刪除(從AngularJS調用內部或通過任何其他方法,如jQuery),則需要執行某些操作。

那可能嗎?

在指令中,當從DOM中刪除元素時,將發出$ destroy事件。 在指令的鏈接函數中,您可以執行以下操作:

element.on('$destroy', function() {
   // do stuff
});

有關更多信息和完整示例,請參見此處的文檔

編輯:看到這個笨拙的人看到$ destroy在行動。 在這里,我將在2秒后刪除該元素,並在控制台中銷毀日志記錄。

當您的指令從DOM中刪除時,會觸發$destroy事件。 看到這里https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope#$ destroy

在這個問題中( 提供范圍的$ destroy事件的示例嗎? ),我找到了以下示例:

ctrl.directive('handleDestroy', function() {
    return function(scope, tElement, attributes) {        
        scope.$on('$destroy', function() {
            alert("In destroy of:" + scope.todo.text);
        });
    };
});

暫無
暫無

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

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