Javascript *数组中存在ngIf值

Javascript *数组中存在ngIf值,javascript,angular,typescript,Javascript,Angular,Typescript,我有一个关于ngIf指令的问题 我的应用程序中有一些动态生成的角度材质切换,它们都有一个特定的id。我想知道,我知道使用ngIf指令可以有条件地在我的页面上显示这些元素。我正在为其他函数使用ngIf,但对于如何检查数组中是否存在元素的id,我有点不知所措 该阵列的外观如下所示: ["fc-vis", "fc-bis", "fc-dis"] 我的开关都有id:fc vis/fc bis。。。等等 我已经尝试使用ngIf,但我不知道如何在条件下发送元素的id。。。或者我可能做错了什么 我想做的是:

我有一个关于ngIf指令的问题

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

该阵列的外观如下所示:

["fc-vis", "fc-bis", "fc-dis"]
我的开关都有id:fc vis/fc bis。。。等等

我已经尝试使用ngIf,但我不知道如何在条件下发送元素的id。。。或者我可能做错了什么

我想做的是:

*ngIf="object.id in myArrayList" 


你知道如何在条件下使用对象的id来检查它是否存在于该数组中吗?

如果你支持现代浏览器,那么你可以在这里使用
array
方法,如:

*ngIf="myArrayList.includes(object.id)" 
*ngIf="myArrayList.indexOf(object.id) > -1" 
  • includes()
    方法确定数组的条目中是否包含某个值,并根据需要返回true或false。因此,在调用此方法后,不需要在此处执行额外的检查
为了支持IE,您可以在此处使用
Array
方法,如:

*ngIf="myArrayList.includes(object.id)" 
*ngIf="myArrayList.indexOf(object.id) > -1" 
  • indexOf()。因此,调用此方法后,我们还需要进行额外的检查,以查看从
    indexOf()
    方法返回的值是否大于
    -1
    ,并基于此
    *ngIf
    将显示或隐藏元素
您也可以使用数组方法,如果数组中不存在元素,则返回-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>

{{myId.id}正在工作

我的问题更像是如何从逻辑上获得每个元素的对象id。。。类似这样的东西。id??你可以使用模板ref,我在答案中更新了它above@Avinash这在我的表单中不起作用,我希望在用户输入一个已经存在的数字时向他显示警告。通过console.log(myArray),我可以看到myArray包含预期的元素(即数字)。你知道什么是错误的吗?也可以考虑@ Avimuy的答案,IE不支持包含方法。这是不可能的。