AngularJS filter by id返回多个entrys

时间:2016-03-11 07:42:30

标签: angularjs angularjs-filter

我有一个像这样的数组:

arr = [
    {ID: 502, Description: 'aaa', code: 1122},
    {ID: 2, Description: 'bbb', code: 2211},
    {ID: 700, Description: 'ccc', code: 2222}
];

当我尝试过滤ID时,我得到了具体数字的所有出现:

$(filter)('filter')( arr, { ID: 2 } )[0]

返回一个ID:502,但它应该返回ID为2的条目

我的错在哪里?

2 个答案:

答案 0 :(得分:3)

根据docs与对象一起使用时,如果元素包含值,它将与元素匹配。

  

模式对象可用于过滤数组包含的对象的特定属性。例如{name:“M”,phone:“1”}谓词将返回一个项目数组,其属性名称包含“M”,属性手机包含“1”。

传递comparator的第二个选项true将导致它执行严格的相等,这意味着它只应返回完全匹配。

$filter('filter')( arr, { ID: 2 }, true);

小提琴:https://jsfiddle.net/enxbpjg0/

答案 1 :(得分:0)

您可以使用函数而不是对象。所以......

$filter('filter')(arr, function(value) {
  return value.ID === 2;
});