AngularJS和$ rootScope

时间:2013-12-31 22:48:06

标签: angularjs

我正在尝试了解Angular中scopes的生命周期,并且想知道$rootScope.$on$rootScope.$watch是否超出范围(传统意义上)?

Angular有没有任何类型的垃圾收集或类似的东西?

你是否担心释放对象($ scopes)?

1 个答案:

答案 0 :(得分:2)

整个角度范围是一个相当大的文档,但您可以启动herehere

简短而高傲的回答是,angular检查你的模块(angular.module('myapp'))以创建一个复杂的依赖树。然后解析DOM以识别" ng"标签或其他自定义指令,它们经历编译阶段(构建自定义HTML)和链接阶段(生成范围并将其附加到该元素)。这大约是实际情况的1/100,但这只是一个开始。

Angular确实执行垃圾收集,但几乎所有这些都发生在幕后。当计划删除$ scope时,它所做的最后一件事就是触发$ scope。$ destroy(),你可以用$scope.$on('$destroy', function() { .. })挂钩来执行任何清理。然后,在大多数情况下,您不必担心清理或发布"任何东西,因为角也会照顾它。

:编辑:

我也偶然发现了这一点,到目前为止最好地解释了这一点 - understanding scopes