我试图从角度上理解scopes的生命周期,并想知道做$rootScope.$on或$rootScope.$watch是否超出了范围(在传统意义上)?
有任何类型的垃圾收集或类似的吗?
您是否需要担心释放对象($scopes)?
发布于 2014-01-01 04:51:20
整个角度范围是一个相当大的文档,但是您可以启动这里或这里。
简短而崇高的答案是,角检查您的模块(angular.module('myapp'))以创建一个复杂的依赖树。然后解析DOM以标识"ng“标记或其他自定义指令,它们经过编译阶段(构造自定义HTML)和链接阶段(生成作用域并将其附加到该元素)。这大约是实际情况的百分之一,但这是一个开始。
Angular确实执行垃圾收集,但几乎所有这些都发生在幕后。当计划删除$scope时,它所做的最后一件事就是触发一个$scope.$destroy(),您可以将它与$scope.$on('$destroy', function() { .. })挂钩以执行任何清理。再说一遍,在大多数情况下,您不必担心清理或“释放”任何东西,因为角也会处理这个问题。
*编辑:
我也偶然发现了这一点,这也是目前为止解释得最好的-- 理解范围。
https://stackoverflow.com/questions/20863941
复制相似问题