我真的很感激我在开发一个transcluded isolated指令时遇到的这个范围问题的理解,其中在模板内部重复了转换。
我保证我已经了解隔离和隔离范围的工作方式,并且我已经在网上搜索了答案。 :)
我在这里发现的是,当不使用重复时,我的被转换的html可以访问父作用域(正如我预期的那样,因为被转换的作用域是父作用域的兄弟)。
但是,当我更改模板以重复转换时,转换后的html将无法再访问父作用域。
我确信这是有充分理由的,但对于我的生活,我不能把手指放在上面。
请参阅example plunker here - 它会更好地解释我所说的内容。
答案 0 :(得分:8)
ng-repeat会发生的情况是,被转换的范围(下面的00A)成为ng-repeat范围(009)的子节点,而不是控制器范围的子节点(003)。
(右键单击图像并在新标签中将其打开,以便更好地查看。)
由于隔离范围006到控制器范围003没有虚线,因此转换范围00A无法使用原型继承链接/查找找到outer
。
(范围004和005由working
指令创建.Transcluded范围005可以使用原型继承查找outer
。)