繁体   English   中英

AngularJS:同一指令集合的隔离范围和超越范围之间是什么关系

[英]AngularJS: what is the relationship between an isolate scope and transclude scope for a collection of the same directive

关于$$ nextSibling的一个小问题。 我见过很多类似文章一个说用隔离范围和transclude范围指令之间的关系是通过$$ nextSibling。 如果指令只有一个实例,这似乎是正确的。 但是,我有一个collection指令,其中包含也属于指令的项目,例如

<items><item id="1"/><item id="2"/></items>

并以此顺序创建了4个同级作用域:项目1隔离,项目2隔离,项目1移入,项目2移入。 在这种情况下,您需要$$ nextSibling。$$ nextSibling,这是非常不令人满意的。

在隔离范围和超越范围之间是否有更干净的引用方式?

我正在尝试使自包含的控件“发出”消息以侦听该消息的第一个父指令接收。 我发现消息是由父级的transclude范围而不是isolate范围接收的(我理解并且很好)。 之所以会出现问题,是因为我的父母控制“模型”位于隔离范围内,因此在收到消息后采取行动就意味着通常在$$ nextSibling中,透明范围与隔离范围之间会进行交互。 但是,如上所述,一旦您开始拥有收藏品,这是不可预测的。

谢谢。

答案取决于版本。 我当时在Angular v1.2.0上运行。 在此版本中,同级作用域未正确排序,因此$$ nextSibling不可靠。 在安装v1.2.7之后,现在已解决此问题,并以正确的顺序列出了同级作用域,而transclude作用域始终位于isolate作用域之后。

从版本更改日志的初始阅读中,并不能立即清楚地看到哪个修复程序解决了此问题,因此我不确定解决此问题的最早的Angular版本是什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM