javascript - 如何在数组上使用 ng-repeat 和 filter 属性?

标签 javascript angularjs angularjs-ng-repeat angular-filters

所以我的数据是这样的:

[
    {
        "userid": "a",
        "age": 19,
        "name": "john"
    },
    {
        "userid": "b",
        "age": 119,
        "name": "joy"
    },
    {
        "userid": "b",
        "age": 119,
        "name": "jesse"
    }
]

我的数组是myarray:["a","b"]

ng-重复:

ng-repeat="objects in data
{{objects.age}}

我如何使用 ng-filter 以便只有那些 userid 在 myarray 中的对象 即只显示 a 和 b?

最佳答案

创建一个通用过滤器:

  angular.module('App')
    .filter("byPropertyInArray", function() {
      return function(objects, propertyName, values) {
        return objects.filter(function(object) {
          return values.indexOf(object[propertyName]) !== -1;
        });
      }
    });

然后在 View 中使用它:

<div ng-repeat="object in data | byPropertyInArray:'userid':myarray">
  {{object.age}}
</div>

假设范围包含 data 作为对象列表和 myarray 作为 ids 列表。

关于javascript - 如何在数组上使用 ng-repeat 和 filter 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35426497/

相关文章:

angularjs - 编辑时关闭 angularJS 中的重新排序

javascript - 如何在Array对象中重复更改值

javascript - Angularjs:选中单选按钮

javascript - AngularJS ng-init 指令被分配了函数和 promise

javascript - 如何从 Angular.js 中的链接函数更改模板

javascript - 在 AngularJS 中,$scope 如何传递到作用域?

javascript - 指令范围

javascript - 当前日期转换为 10 天前和 10 天后

javascript - HTML5 Canvas 图像分割

javascript - HTML, CSS, JavaScript