angularJS似乎创建了新的范围,因为它有父范围,子范围和兄弟范围。
什么时候决定创建新范围?例如,如果我使用ng-inspector查看存在的范围,则有$ rootScope和其他范围,但对我来说其他范围对应的内容并不明显,对于我这些其他范围也不清楚被创建/销毁。我相信它们是因为$ id改变而被创建/销毁的。如果我四处走动并向前/向后按压,则会发生变化。
答案 0 :(得分:0)
Angular为DOM的那部分上的每个实例化控制器创建新范围。
Angular还为每个指令创建范围(范围除外:false,表示具有隔离范围的指令,范围:true)。还为内置指令创建了一个范围,例如ng-repeat
,它为每个重复项创建范围。
此外,当您使用ng-if
指令时,它可以删除并添加DOM的部分内容,当它添加时,所有控制器和指令都会再次添加其范围。
答案 1 :(得分:0)
Angular的范围树几乎将反映dom树。指令可以创建新的范围。不仅仅是你的指令,还包含像ng-if这样的Angular指令。这是一个深入的话题......
这是一个blog post,可以更深入地解释事情。
希望有所帮助!