ngFor inside ngFor - Angular 2

Fah*_*mad 1 javascript arrays typescript angular

我如何使用*ngForAngular 2 迭代多维数组.下面是使用的DOM Wrapper:

<li *ngFor="let menuName of menuNames" routerLinkActive="active" [ngClass]="{'has-submenu':menuName.submenu?.length>0 }">
    <a href="#" [routerLink]="menuName.route" *ngIf="!menuName.enableSM"> <i class="glyphicon {{menuName.icon}}"></i><span class="nav-label">{{menuName.name}}</span> </a>
    <a href="#" *ngIf="menuName.enableSM"> <i class="glyphicon glyphicon-list-alt"></i> <span class="nav-label">Pages</span> </a>
    <ul class="list-unstyled" *ngIf="menuName.enableSM">
        <li *ngFor="let subMenuName of menuNames['submenu'] let idx = index;"> <a [routerLink]="subMenuName.route">404</a> </li>
    </ul>
</li>
Run Code Online (Sandbox Code Playgroud)

和嵌套数组:

menuNames = [{
    name: "Dashboard",
    route: '/home',
    icon: "glyphicon-th-large",
    submenu: [],
    enableSM: false
}, {
    name: "Pages",
    route: '',
    icon: "glyphicon-list-alt",
    submenu: [{
        name: "404",
        route: '/404.html'
    }, {
        name: "Signin",
        route: '/auth/signin'
    }],
    enableSM: true
}];
Run Code Online (Sandbox Code Playgroud)

第二个循环根本不渲染.

Mic*_*zyn 5

你的代码中有一些小问题,错别字.第二个*ngFor应该是这样的:

*ngFor="let subMenuName of menuName['submenu']; let idx = index;"

记住它menuName不是menuNames,之前有一个分号let idx.

  • 非常感谢您指出错误.这只是一个直截了当的标志,我应该停止编码在4:am:P. (2认同)