提供示例的$ destroy事件?

提供示例的$ destroy事件? 以下是来自http://docs.angularjs.org/api/ng.$ro​​otScope.Scope#$destroy的参考文档

$摧毁()

从父范围中删除当前范围(及其所有子范围)。 删除意味着对$ digest()的调用将不再传播到当前范围及其子级。 去除也意味着当前范围有资格进行垃圾回收。

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

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

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

这里我创build了句柄销毁指令。

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

$destroy可以引用2个东西:方法和事件

1.方法 – $ scope。$ destroy

 .directive("colorTag", function(){ return { restrict: "A", scope: { value: "=colorTag" }, link: function (scope, element, attrs) { var colors = new App.Colors(); element.css("background-color", stringToColor(scope.value)); element.css("color", contrastColor(scope.value)); // Destroy scope, because it's no longer needed. scope.$destroy(); } }; }) 

event – $ scope。$ on(“$ destroy”)

见@ SunnyShah的答案 。