ng-repeat未知数量的项目

时间:2015-07-13 16:06:53

标签: javascript arrays angularjs multidimensional-array

好吧这看起来很奇怪,但我允许我的用户创建他们想要的任意数量的类别/子类别

当我拉出类别数据时,它可能看起来像这样:

enter image description here

从上面的例子可以看出,子类别可以有子类别,这个列表树可以永远存在。

现在尝试制作菜单我有一个简单的列表:

    <ul class="nav dker">
    <li ui-sref-active="active">
        <a ui-sref="app.ui.jvectormap" href="#/app/ui/jvectormap">
            <span translate="aside.nav.components.ui_kits.VECTOR_MAP" class="ng-scope">Vector Map</span>
        </a>
    </li>
</ul>

这里的问题是,我不知道有多少次我必须重复子类别,这使我无法知道何时检查它?

我希望你知道我在哪里,当我不知道有多少级别时,如何制作一个遵循上面数组模式的可靠列表?

1 个答案:

答案 0 :(得分:2)

您将要创建一个递归模板,基本上看起来像这样:

<div data-ng-include="'displaySubcategory.html'"></div>

其中displaySubcategory.html包含ng-repeat以及对自身的递归调用。

<div data-ng-repeat="category in category.subcategories">
    <h1>{{category.name}}</h1>
    <div data-ng-include="'displaySubcategory.html'"></div>
</div>

这个想法是,每当你调用ng-repeat时,你正在围绕子元素创建一个范围,所以对{{category}}的调用将显示树/数据结构的最低级别(当前子级)。