我们正在将应用程序升级到Angular 1.3.0。在这样做的过程中,我们遇到了一些问题,其中大部分问题似乎归结为ngRepeat中ngTransclude的行为。
我们有一个指令重复一堆项目,周围有一个容器,但不拥有该容器的子容器。例如,这是一个简化的例子:
<div ng-controller="myController">
There are {{items.length}} items.
<div my-directive items="items">
This item's name is {{item.name}}
</div>
</div>
在内部,该指令包含<li ng-repeat="item in items" ng-transclude></li>
等。
在更新之前,这很好用。重复的,被转换的元素位于继承自ngRepeat创建的范围的范围内。在更新时,这些项目都在一个继承自控制器的范围内,据我所知,没有办法访问由ngRepeat创建的范围。
以下是两个JS Bin示例:
如何在Angular 1.3.0中实现旧的行为或其相似之处?如果这是ngTransclude的预期行为,我怎么能重复一堆子节点而不知道它们是什么?
答案 0 :(得分:3)
https://github.com/angular/angular.js/issues/8182
1.3决定ng-trasclude不会从指令中拉出范围。链接页面上有解决方法,
https://github.com/angular/angular.js/issues/7874 https://github.com/angular/angular.js/issues/7874#issuecomment-47647528
这是预期的行为。