ng-repeat重复指令所在的div

时间:2016-04-15 20:41:04

标签: javascript angularjs

我有以下代码:

<div ng-repeat="item in selectedCategory">
    <div class="repertoire-composer">
        <div data-toggle="collapse" data-target="#compositions{{$index}}"
             class="repertoire-composer-title">
            <span class="fa fa-chevron-right"></span>
            {{item.composer}}
            <span class="fa fa-plus"></span>
        </div>
        <div id="compositions{{$index}}" ng-repeat="composition in item.compositions" class="repertoire-compositions collapse">
            <div class="repertoire-composition">
                {{composition}}
                <span class="fa fa-remove" title="Remove"></span>
            </div>
        </div>
    </div>
</div>

所以我基本上想要的是拥有一个包含多个.repertoire-composer div的树,每个div在其.repertoire-composition div中有一个或多个子.repertoire-compositions。所以在第二次重复中,angular应创建一个或多个.repertoire-composition div。然而,它似乎做的是创建更多指令所在的div。希望我已经足够明确,这是不必要的结果:

enter image description here

基本上,为什么我的.repertoire-compositions div会重复?

修改

我误解了ng-repeat。这是它的预期行为:重复指令所在的元素。谢谢你的澄清。

3 个答案:

答案 0 :(得分:2)

.repertoire-compositions并未被重复,因为模板的这一部分实际上已经重复了这些内容:

<div id="compositions{{$index}}" ng-repeat="composition in item.compositions" class="repertoire-compositions collapse">

答案 1 :(得分:0)

我想这是因为item.compositions上的第二次ng-repeat,你能提供一组数据吗?

答案 2 :(得分:0)

我不确定,但你可以在内部中继器中试试这个:

<div id="compositions{{$index}}"  class="repertoire-compositions collapse">
        <div class="repertoire-composition" ng-repeat="composition in item.compositions">
            {{composition}}
            <span class="fa fa-remove" title="Remove"></span>
        </div>
    </div>