* ng如果值存在于数组中

时间:2018-07-02 16:22:25

标签: javascript angular typescript

我对ngIf指令有疑问。

我的应用程序中有一些角度材质切换是动态生成的,它们都具有特定的ID。我想知道,我知道使用ngIf指令可以在页面上有条件地显示那些元素。我正在将ngIf用于其他函数,但是我对如何检查元素的ID是否存在于数组中有些困惑。

数组看起来像这样:

["fc-vis", "fc-bis", "fc-dis"]

和我所有的切换都有ID:fc-vis / fc-bis ...依此类推。

我尝试使用ngIf,但我不知道如何在条件中发送元素的ID ...否则我可能做错了事

我正在尝试做的事情是这样的:

*ngIf="object.id in myArrayList" 

*ngIf="checkIfExists(object.id)"

关于如何在条件中使用对象的id来检查它是否存在于该数组中的任何想法?

2 个答案:

答案 0 :(得分:4)

您可以在此处使用数组includes()方法,

*ngIf="myArrayList.includes(object.id)" 

答案 1 :(得分:2)

您还可以使用Array indexOf()方法,如果元素不在数组中,则返回-1:
在你的ts-
const myArray = ["fc-vis", "fc-bis", "fc-dis"]
在模板中-
*ngIf="myArray.indexOf(object.id) > -1"
使用templateRef获取元素的ID,例如:

<div id="fc-vis" #myId>
  <p *ngIf="myArray.indexOf(myId?.id) > -1">{{myId.id}} working </p> 
</div>