admin管理员组文章数量:1389736
how do i iterate over multidimensional array using *ngFor
in Angular 2.
Below is the DOM Wrapper im using:
<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>
And the nested array:
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
}];
The second loop does not render at all.
how do i iterate over multidimensional array using *ngFor
in Angular 2.
Below is the DOM Wrapper im using:
<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>
And the nested array:
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
}];
The second loop does not render at all.
Share Improve this question asked Feb 11, 2017 at 21:46 Fahid MohammadFahid Mohammad 9304 gold badges17 silver badges48 bronze badges 2-
3
As a side-note.
[ngClass]
can be simplified a bit by using[class.name-of-class]="expression"
syntax. For more details visit my answer here. – David Walschots Commented Feb 11, 2017 at 21:57 - You are right, its neat way of handling such cases :) – Fahid Mohammad Commented Feb 13, 2017 at 6:53
1 Answer
Reset to default 5There are some minor issues in your code, typos. Second *ngFor
should look like this:
*ngFor="let subMenuName of menuName['submenu']; let idx = index;"
Mind it's menuName
not menuNames
and there's a semicolon before let idx
.
本文标签: javascriptngFor inside ngForAngular 2Stack Overflow
版权声明:本文标题:javascript - ngFor inside ngFor - Angular 2 - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744636524a2616855.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论