所以,我有这些小部件:
<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) {
}
});
答案 0 :(得分:9)
您可以收听在范围销毁之前立即触发的$destroy事件。
$ destroy()通常由诸如ngRepeat之类的指令用于管理循环的展开。
scope.$on('$destroy', function () {
console.log('captured $destroy event');
});