AngularJS:如何使用$ filter在给定数组中的属性值数组的情况下从对象数组中查找对象

时间:2015-05-31 13:27:46

标签: javascript arrays angularjs angularjs-filter

在数组(items数组)中有一组具有属性

的对象
item_id:
[{item_id:1,...},{item_id:2,...}...]

拥有一组

的另一个数组
item_ids:
[2, 8, 10]

如何使用angularjs的$ filter从item_id匹配item_ids数组中的项目数组中获取对象数组。

1 个答案:

答案 0 :(得分:1)

您可以使用自定义过滤器进行此类过滤。如果你想在代码而不是模板中使用document.activeElement.classList 服务,你可以使用它。

<强> Filter Guide

请参阅以下代码。

&#13;
&#13;
$filter
&#13;
var app = angular.module('app', []);

app.controller('ctrl', function($scope, $filter) {

  $scope.items = [{
    item_id: 1
  }, {
    item_id: 2
  }, {
    item_id: 3
  }, {
    item_id: 4
  }];

  $scope.findList = [2, 4];
  $scope.findList2 = [3];

  // Using $filter service.
  $scope.usingservice = $filter('findobj')($scope.items, [1, 3])
});

app.filter('findobj', function() {

  return function(list, obj) {

    return list.filter(function(l) {
      if (obj.indexOf(l.item_id) >= 0) {
        return true;
      }
    });

  };
})
&#13;
&#13;
&#13;