这是angularjs应用程序。 在视图中,我可以访问对象数组:
var arrayOfObjects = [{"name":"blue"},{"name":"red"}];
然后我有一个div
,只有在arrayOfObjects
包含带有
name=='red'
我看过“ contains
”,但似乎仅适用于元素数组,而不适用于对象数组。
是否可以直接在视图中执行此操作而无需在控制器中进行编码?
答案 0 :(得分:1)
由于数组不了解其内部内容(在本例中为对象),因此您必须检查条件中的每个元素。
一种简单的方法是使用some
这样的方法:
<div *ngIf="arrayOfObjects.some(({ name }) => name == 'red')"></div>
如果arrayOfObjects中的某些元素满足此条件,则some
将返回true。另一种方法是将arrayOfObjetcs
映射到arrayOfNames
,然后他们检查该数组是否包含名称,如下所示:
arrayOfObjects.map(({ name }) => name).contains('red')