【发布时间】:2014-07-25 21:11:37
【问题描述】:
我有一个轮播指令,其中包含一些分块,用于将传入的 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>
我希望被嵌入的元素绑定到最深的ng-repeat 的item 对象
此处提供了带有简化测试用例的完整 Plunker:http://plnkr.co/edit/kYItcXV0k9KvnpiYx1iG
问题是我不能将ng-transclude 属性放在ng-repeat 中,并且(如Plunkr 中的carousel.js 指令文件所示)我似乎无法手动注入要嵌入的标记在指令的compile 步骤中使用transclude() 函数进入该位置。
任何想法都将不胜感激。
【问题讨论】:
标签: javascript angularjs angularjs-directive transclusion