AngularJS:意外的指令范围创建重复

时间:2014-06-16 13:36:29

标签: angularjs scope

我遇到了一些麻烦,理解为什么angular为我的某些指令创建了两个范围。我的原始代码很乱,包含很多" temp"其中的部分,所以我创建了一个plnkr来说明我遇到的问题。这是链接:
http://plnkr.co/edit/gKMcCyRlGHwuKAQ6te76?p=preview
(请记住代码仅用于说明)

[我的问题]
执行简单示例会导致创建5个范围。
1.范围002 - 我相信这个范围是在角度遇到ng-app指令时用作根范围。
2.范围003 - 我相信这个范围是作为控制器的范围创建的。在我的案例中,HomeController的范围。
3.范围004 - 我相信这个范围是在角度解析我的指令时创建的。由于该指令是使用" scope:true"定义的,因此创建此范围是为了存储它的模型。在此范围内,可以访问sectionID(在指令代码的preLink阶段设置)。
4.范围005 - 我不知道为什么角度为我创造了这个范围。
5.范围006 - 此范围是为我的 testInput 指令创建的。 此范围的父级是范围005。可悲的是,此范围完全不知道存储在范围004中的信息,因此在此范围内sectionID未定义。

[我的期望]
好吧,我期望缺少范围005,范围006是范围004的子范围。我需要在我的group指令范围内设置一些信息,然后从嵌套在其中的元素中访问该信息。基。

[我的问题]
有谁知道为什么Scoope 005首先被创建?我认为我的问题是由于我对角度管理范围的了解不足,但是根据我在网上发现和阅读的信息,我无法找到答案。

谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

群组指令有transclude: true,并且转换会创建一个"被转换的"范围,即Scope 005