Angular 7-对象集合,如果有任何项目具有true

时间:2018-12-28 13:27:15

标签: angular angular7

如果集合中有任何属性为true的项目,如何在集合上运行*ngIf

var data ={
  Collection: [
     {Flag : true },
     {Flag : true },
     {Flag : true },
     {Flag : false }
  ]
}

我该怎么做*ngIf="data.Collection.ANY(Flag == true)"

4 个答案:

答案 0 :(得分:2)

您可以在此处方便地使用js some(),如下所示-

pw.setBackgroundDrawable(new ColorDrawable());

这是 <div *ngIf="data.Collection.some(x=>x.Flag)"></div> 的有效示例-

some()

答案 1 :(得分:0)

<div *ngIf="data.Collection.filter(x=>x.Flag).length"></div>

如果您还想处理未定义的内容

 <div *ngIf="data.Collection&&data.Collection.filter(x=>x.Flag).length"></div>

答案 2 :(得分:0)

这应该有效:

*ngIf="data.Collection.reduce((a, b) => a || b.Flag, true)"

答案 3 :(得分:0)

在组件中编写如下功能

public hasFlag(): boolean {
  return this.data.collection && this.data.collection.some(item => item. Flag);
}

现在调用该函数

* ngIf =“ hasFlag()”

希望您不会出现绑定错误