Angular JS指令卸载事件或等效

时间:2015-01-19 11:40:56

标签: javascript angularjs

所以,我有这些小部件:

<widget ng-repeat="widget in widgets"></widget>

正如您所知,它们是由ng-repeat创建和删除的。

所以当有人删除一个小部件时,指令中是否有任何地方可以捕获发生的事件或等效事件?

.directive('widget', function widget() {
    var directive = { 
        restrict: 'E',
        compile: compile
    };

    return directive;

    function compile() {
        return {
            pre: preLink,
            post: postLink
        };
    }

    function preLink(scope, element) {

    }

    function postLink(scope, element) {

    }
});

1 个答案:

答案 0 :(得分:9)

您可以收听在范围销毁之前立即触发的$destroy事件。

  

$ destroy()通常由诸如ngRepeat之类的指令用于管理循环的展开。

scope.$on('$destroy', function () {
    console.log('captured $destroy event');
});