我真的很感激我在开发一个嵌入的隔离指令时遇到的这个范围界定问题的一些理解,其中嵌入在模板内重复。
我保证我已经了解隔离和包含范围的工作原理,并且我已经在网上搜索了答案。 :)
我在这里发现的是,当不使用重复时,我的嵌入 html 可以访问父范围(正如我所料,因为嵌入范围是父范围的兄弟)。
但是,当我更改模板以重复嵌入时,被嵌入的 html 不再可以访问父范围。
我敢肯定这是有充分理由的,但对于我的一生,我不能指望它。
请参阅 example plunker here - 它会比文字更好地解释我所指的内容。
最佳答案
ng-repeat 发生的情况是嵌入范围(下面的 00A)成为 ng-repeat 范围(009)的子级,而不是 Controller 范围(003)的子级。
(右键单击图像并在新选项卡中打开它以更好地查看它。)
由于从隔离范围 006 到 Controller 范围 003 之间没有虚线,因此已嵌入的范围 00A 找不到 outer
使用原型(prototype)继承链接/查找。
(作用域 004 和 005 由 working
指令创建。转置作用域 005 可以使用原型(prototype)继承找到 outer
。)
关于具有 ng-repeat 的 AngularJS 隔离指令打破了嵌入范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16730573/