我有一个轮播指令,其中包括一些分块,以将传入的数组映射items
到元素结构数组的数组中,然后生成类似于下面的伪代码的标记:
<array of arrays>
<array of items>
<item>
<item>
</array of items>
<array of items>
<item>
<item>
</array of items>
</array of arrays>
这个的角度模板看起来像这样:
<div class="carousel__content" ng-style="carousel.containerWidth">
<ul class="carousel__chunk" ng-repeat="chunk in carousel.chunks" ng-style="carousel.chunkWidth">
<li class="carousel__item" ng-repeat="item in chunk" ng-style="carousel.itemWidth">
<div class="carousel__item-content">
[element should be transcluded into this spot.]
</div>
</li>
</ul>
</div>
鉴于我的视图代码:
<!-- The <a> tag should appear inside the 'carousel.html' template's ng-repeat list. -->
<carousel items="items" config="config">
<a href="#">{{ item.name }}</a>
</carousel>
我希望嵌入的元素绑定到item
最深的对象ng-repeat
此处提供了带有简化测试用例的完整 Plunker:http: //plnkr.co/edit/kYItcXV0k9KvnpiYx1iG
问题是我无法将ng-transclude
属性放入ng-repeat
并且(如carousel.js
Plunkr 中的指令文件所示)我似乎无法使用步骤中的transclude()
函数将要嵌入的标记手动注入该位置compile
指示。
任何想法将不胜感激。