在Angular中,范围与DOM元素相关联.如果你打电话$element.remove()
,$element.scope().$destroy()
最终也会被召唤?或者开发人员是否负责自己清理范围?
这让我觉得删除DOM元素会自动删除范围:
angular.js
/////////////////////////////////////////////
// jQuery mutation patch
//
// In conjunction with bindJQuery intercepts all jQuery's DOM destruction apis and fires a
// $destroy event on all DOM nodes being removed.
//
/////////////////////////////////////////////
function JQLitePatchJQueryRemove(name, dispatchThis) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
Angular 1.2.X 现在修补 JQuery 以调用 $destroy
但是,我还没有测试过是否得到与之前看到的相同的结果。
(感谢@KumarHarsh 在评论中指出这一点)
不,$element.remove()
不会删除作用域,大概是因为该作用域仍然被其他作用域引用。
作为证明,您可以从嵌套控制器中删除作用域元素,然后从父控制器加载作用域并检查$$childHead
子作用域是否仍然存在。
此外,您还可以使用Chrome 的 Batarang 插件查看内存中的范围
归档时间: |
|
查看次数: |
6021 次 |
最近记录: |