【问题标题】:should I destroy directive scope or angular will do it我应该销毁指令范围还是角度会这样做
【发布时间】:2015-11-21 14:22:34
【问题描述】:

请你解释一件事。想象一下,我们有一个名为“myDirective”的指令。这是html:

<div my-directive>
</div>

当我们从 DOM 中删除这个 div 时,是否会从角度破坏 myDirective 及其观察者的作用域,或者我必须在 div DOM 元素上监听事件“$destroy”并在监听器内部调用 scope.$destroy?

【问题讨论】:

    标签: javascript angularjs angularjs-directive angularjs-scope


    【解决方案1】:

    通常当你从 DOM 中移除一个 div 时,angularJS 会自动释放事件并销毁作用域,即使你没有监听 $destroy 事件。 那么为什么你应该使用 $destroy 呢?您应该使用它来手动取消分配一些非 angularJS 事件和插件(例如,如果您在 myDirective 中创建一个“Kendo Grid”,则需要在 $destroy 函数中使用插件函数来销毁它)。 我还建议将范围内对象的所有引用设置为 null(最佳实践)。

    【讨论】:

    • 在我的项目中,我有一些指令。当我删除该指令附加到的 DOM 元素时,该指令范围内的观察者不会被删除,所以我必须这样做才能删除观察者: element.on('$destroy', function() { scope. $destroy(); });
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多