如何在Angular 2中使用*ngFor迭代多维数组。下面是使用以下代码的DOM包装器im:
<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>和嵌套数组:
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
}];第二个循环根本不渲染。
发布于 2017-02-12 05:52:55
在你的代码中有一些小问题,打字错误。第二个*ngFor应该如下所示:
*ngFor="let subMenuName of menuName['submenu']; let idx = index;"
注意,它是menuName,而不是menuNames,而且let idx前面有一个分号。
https://stackoverflow.com/questions/42181601
复制相似问题