首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有人能为AngularJS中的作用域提供一个$destroy事件的示例吗?

有人能为AngularJS中的作用域提供一个$destroy事件的示例吗?
EN

Stack Overflow用户
提问于 2013-01-20 01:29:19
回答 2查看 116.1K关注 0票数 68

有人能提供一个scope的$destroy事件的例子吗?以下是来自http://docs.angularjs.org/api/ng.$rootScope.Scope#$destroy的参考文档

$destroy()

从父作用域移除当前作用域(及其所有子作用域)。删除意味着对$digest()的调用将不再传播到当前作用域及其子对象。删除还意味着当前作用域有资格进行垃圾收集。

ngRepeat等指令通常使用$destroy()来管理循环的展开。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-20 01:30:43

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

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

代码语言:javascript
复制
ctrl.directive('handleDestroy', function() {
    return function(scope, tElement, attributes) {        
        scope.$on('$destroy', function() {
            alert("In destroy of:" + scope.todo.text);
        });
    };
});
票数 107
EN

Stack Overflow用户

发布于 2015-10-01 02:04:15

$destroy可以指两件事:方法和事件

1. method - $scope.$destroy

代码语言:javascript
复制
.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();
    }
  };
})

2. event - $scope.$on("$destroy")

参见@SunnyShah's answer

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14416894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档