2017-05-03 30 views
0

假设我有一个元素列表。第一个是课程,第二个是考试,第三个是课程,第四个是课程。Angular2 - 开关组件

我想显示此列表。所以我用* ngFor做了一个循环,并且我的列表项有3个不同的组件。

我正在寻找最佳解决方案。

<div *ngFor="let item of items"> 
    <course [item]="item" *ngIf="item.type == 1"></course> 
    <exam [item]="item" *ngIf="item.type == 2"></exam> 
    <curriculum [item]="item" *ngIf="item.type == 3"></curriculum> 
</div> 

它似乎并不是最好的解决方案。

回答

1

不知道你认为是“最好的”的样子,但如果你正在寻找使用ngSwitch,这里是

<div *ngFor="let item of items" [ngSwitch]="item.type"> 
    <course [item]="item" *ngSwitchCase="1"></course> 
    <exam [item]="item" *ngSwitchCase="2"></exam> 
    <curriculum [item]="item" *ngSwitchCase="3"></curriculum> 
</div>