角度2 ng对于条件放置

时间:2017-01-20 19:59:02

标签: angular ngfor

在我的角度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或其他一些方法做到这一点?

2 个答案:

答案 0 :(得分:1)

是的,我会过滤阵列!在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>

答案 1 :(得分:1)

为什么不使用下面的内容

<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>