ngIf ディレクティブに関して質問があります。
私のアプリケーションには、動的に生成される Angular マテリアル トグルがいくつかあり、それらはすべて特定の ID を持っています。疑問に思ったのですが、ngIf ディレクティブを使用すると、条件に応じてそれらの要素をページに表示できることは知っています。他の機能には ngIf を使用していますが、要素の ID が配列内に存在するかどうかを確認する方法が少しわかりません。
配列は次のようになります。
["fc-vis", "fc-bis", "fc-dis"]
そして私のトグルにはすべて fc-vis / fc-bis という ID が付いています...。
ngIf を使ってみましたが、条件内の要素の ID を送信する方法がわかりません... または、何か間違っている可能性があります
私がやろうとしているのは次のようなことです:
*ngIf="object.id in myArrayList"
または
*ngIf="checkIfExists(object.id)"
条件でオブジェクトの ID を使用して、その配列内に存在するかどうかを確認する方法について何かアイデアはありますか?
ベストアンサー1
最新のブラウザをサポートしている場合は、Array
includes()
ここでのメソッドは次のようになります:
*ngIf="myArrayList.includes(object.id)"
- この
includes()
メソッドは、配列のエントリに特定の値が含まれているかどうかを判定し、必要に応じて true または false を返します。したがって、このメソッドを呼び出した後、ここで追加のチェックを行う必要はありません。
IEをサポートするには、Array
indexOf()
ここでのメソッドは次のようになります:
*ngIf="myArrayList.indexOf(object.id) > -1"
- この
indexOf()
メソッドは、配列内で特定の要素が見つかる最初のインデックスを返します。存在しない場合は -1 を返します。したがって、このメソッドを呼び出した後、indexOf()
メソッドから返された値がより大きい-1
かどうかを確認し、それに基づいて*ngIf
要素を表示または非表示にする追加のチェックも実行する必要があります。