【问题标题】:AngularJs $scope.$destroy(). How to use?AngularJs $scope.$destroy()。如何使用?
【发布时间】:2015-06-11 11:18:50
【问题描述】:

我正在分析我的应用程序 AngularJs 的代码以尝试最大化性能,我将此代码放入我的控制器中

$scope.$on("$destroy", () ->
  console.log "DESTROY SCOPE OF CONTROLLER BEFORE EXIT"
  console.log window.performance.memory
  $scope.$destroy()
  console.log window.performance.memory
)

所以

$scope.$destroy()

应该清除我的控制器及其子级的范围。 问题是当我离开控制器并激活事件 $ destroy 时,在控制台中我看到日志在循环中。为什么?

谢谢大家

【问题讨论】:

  • 销毁作用域时会触发销毁事件。并且您破坏了事件侦听器中的范围。这样会发出一个销毁事件,该事件调用侦听器,该侦听器销毁作用域,发出事件等。

标签: angularjs performance memory-leaks angularjs-scope heap-memory


【解决方案1】:

您可以在有关scope life cycle 的文档中找到部分答案。

在您的情况下,您在侦听器中调用 $destroy 事件。所以你正在递归调用 $destroy 事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多