基于此Plunker:http://plnkr.co/edit/GufJjrn3OxYVSf2oLD5n?p=preview
我有两个指令,为了简单起见,我们将它们命名为directiveBlue
和directiveRed
。
directiveRed
必须是directiveBlue
的子元素。
我们的迷你应用的MainCtrl
在变量$scope.elements
下有一个简单数组。
此变量将传递给directiveBlue
通过data-elements
属性创建的隔离范围。请注意,directiveBlue
必须是transclude指令。
然后我的主要问题是,我如何将元素数组传递给directiveRed
,而不必通过$scope.$parent.elements
通过{{1}}进行,这在我看来是一种不好的做法,然后它会使代码紧密耦合。
然后,对最深层指令中元素的任何更改都应与其他范围同步。
对此有什么好的做法或有效的解决方案吗?
谢谢!
修改
更具体地说明我的用例:
我创建了一个具有更具体情况的plunker(http://plnkr.co/edit/i2Busz6E8ehlkG3uEllh?p=preview),我想要一个行动小组的指令,我已经实现了一个选项作为一个简单的指令,我想要将我的逻辑放在指令控制器中。方法selectAll非常简单,但我可以想象有更复杂的动作需要顶级范围内的元素。