提供示例的$ destroy事件?
提供示例的$ destroy事件? 以下是来自http://docs.angularjs.org/api/ng.$rootScope.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的答案 。