Angular 2 ng用于条件放置
Angular 2 ngFor conditional placement
在我的 angular 2 应用程序中,我有一些项目的数组,我想根据条件将每个项目放在特定的位置。
这是示例模板:
<div>
<div>_place if 1 condition</div>
<div>_place if 2 condition</div>
...
<div>_place if n condition</div>
</div>
所以,如果条件为 1,我想将数组项放在第 1 个位置,如果条件为 2,则放在第 2 个位置 ... 如果有 n,则为 n。
有没有办法用 ngFor 或其他方法做到这一点?
是的,我会过滤数组!在 ngOnInit()
中设置变量等于每个过滤器的结果。这将根据过滤器中的条件将单个数组的值排序到多个数组中。
ngOnInit(){
let div1Values = this.records.filter((item) => {
return (item.CustomerKey === 0? item : null);
})
let div2Values = this.records.filter((item) => {
return (item.IsActive? item : null);
})
}
然后绑定到模板中的这些新数组:
<div>
<div *ngFor="let record of div1Values">{{record}}</div>
<div *ngFor="let item of div2Values">{{item}}</div>
...
<div *ngFor="let value of divNValues">{{value}}</div>
</div>
为什么不直接使用下面的东西
<div *ngFor="let value of values">
<div *ngIf="value == Condition1">_place if 1 condition</div>
<div *ngIf="value == Condition2">_place if 2 condition</div>
...
<div *ngIf="value == ConditionN">_place if n condition</div>
</div>
在我的 angular 2 应用程序中,我有一些项目的数组,我想根据条件将每个项目放在特定的位置。
这是示例模板:
<div>
<div>_place if 1 condition</div>
<div>_place if 2 condition</div>
...
<div>_place if n condition</div>
</div>
所以,如果条件为 1,我想将数组项放在第 1 个位置,如果条件为 2,则放在第 2 个位置 ... 如果有 n,则为 n。 有没有办法用 ngFor 或其他方法做到这一点?
是的,我会过滤数组!在 ngOnInit()
中设置变量等于每个过滤器的结果。这将根据过滤器中的条件将单个数组的值排序到多个数组中。
ngOnInit(){
let div1Values = this.records.filter((item) => {
return (item.CustomerKey === 0? item : null);
})
let div2Values = this.records.filter((item) => {
return (item.IsActive? item : null);
})
}
然后绑定到模板中的这些新数组:
<div>
<div *ngFor="let record of div1Values">{{record}}</div>
<div *ngFor="let item of div2Values">{{item}}</div>
...
<div *ngFor="let value of divNValues">{{value}}</div>
</div>
为什么不直接使用下面的东西
<div *ngFor="let value of values">
<div *ngIf="value == Condition1">_place if 1 condition</div>
<div *ngIf="value == Condition2">_place if 2 condition</div>
...
<div *ngIf="value == ConditionN">_place if n condition</div>
</div>