angularjs什么时候创建新的作用域?



angularJS似乎创建了新的作用域,包括父作用域、子作用域和兄弟作用域。

什么决定什么时候创建一个新的作用域?例如,如果我使用ng-inspector来查看当前的作用域,有$rootScope,还有其他作用域,但对我来说,其他作用域对应的内容并不明显,也不清楚这些作用域何时被创建/销毁。我相信它们被创建/销毁是因为$id发生了变化。如果我四处导航并按前进/后退键,就会发生变化。

Angular会为DOM中每个实例化的控制器创建新的作用域。Angular还会为每个指令创建作用域(scope:false和scope:true除外,因为scope:false是指具有隔离作用域的指令)。作用域也会为内置指令创建,比如ng-repeat,它会为每个重复项创建作用域。

当你使用ng-if指令时,它可以删除和添加部分DOM,当它添加它时,所有的控制器和指令将再次添加它们的作用域。

Angular的作用域树几乎是dom树的镜像。指令可以创建新的作用域。不仅是你的指令,还有Angular中内置的指令,比如ng-if。这是一个比较深入的话题……

这是一篇更深入地解释事情的博客文章。

希望有帮助!

最新更新