在$ scope之后。$ on('$ destroy',eventName)范围第二次不可用

时间:2015-05-11 07:25:56

标签: angularjs

为了避免在发射中重复调用,我正在使用 $ scope。$ on('$ destroy',eventName);

var eventName= $rootScope.$on("load_emit_data", function(event){
        $scope.getdata();   
        event.preventDefault();
        eventName()
    });
通过这个我可以避免重复的呼叫,但我的问题是

  1. 我想在添加记录后刷新仪表板
  2. 添加第一个记录仪表板成功刷新后,只调用一次。
  3. 但在destroy或eventName()之后,如果我添加第二条记录,则Emit不会调用..
  4. 任何人都能建议吗?

1 个答案:

答案 0 :(得分:0)

我不是AngularJS专家,但我不希望在开始销毁之后能够存活下来(至少直到'destroy'有意义)。

无论如何the doc说:

  

从父作用域中移除当前作用域(及其所有子作用域)。删除意味着对$ digest()的调用将不再传播到当前范围及其子节点。删除还意味着当前范围符合垃圾收集的条件。

ans也是:

  

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

所以我会说你遇到的不是故障,而是设计