有人可以为AngularJS中的范围提供$ destroy事件的示例吗?

时间:2013-01-19 17:29:19

标签: angularjs

有人可以提供范围的$ destroy事件的示例吗?以下是http://docs.angularjs.org/api/ng.$rootScope.Scope#$destroy

的参考文档
  

$破坏()

     

从父级移除当前范围(及其所有子级)   范围。删除意味着不再调用$ digest()   传播到当前范围及其子级。删除也意味着   当前范围符合垃圾收集条件。

     

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

     

在范围被销毁之前,广播了一个$ destroy事件   这个范围。应用程序代码可以注册$ destroy事件处理程序   这将使它有机会进行任何必要的清理。

2 个答案:

答案 0 :(得分:103)

演示:http://jsfiddle.net/sunnycpp/u4vjR/2/

我在这里创建了 handle-destroy 指令。

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

答案 1 :(得分:19)

Figure可以引用两件事:方法和事件

1。方法 - $ scope。$ destroy

$destroy

2。 event - $ scope。$ on(“$ destroy”)

请参阅@SunnyShah's answer