【问题标题】:ng-repeat only objects with specific property value - custom filter?ng-repeat 仅具有特定属性值的对象 - 自定义过滤器?
【发布时间】:2014-08-19 19:31:53
【问题描述】:

假设我有一个 JSON 对象“用户”,它具有一些基本属性,例如:“名称”、“地址”、“角色”等。

我希望 ng-repeat 只吐出属性“角色”等同于“管理员”的对象。我该怎么做呢?

我正在考虑类似自定义过滤器之类的东西,或者可能会创建一个范围变量,将匹配的对象放在一个数组中,然后重复它们。

这种情况的最佳做法是什么?

谢谢。

【问题讨论】:

    标签: angularjs angularjs-ng-repeat


    【解决方案1】:

    内置的filter可以处理这种情况...

    <div ng-repeat="user in users | filter : {role: 'administrator'} : true">
       ...
    </div>
    

    【讨论】:

    • 快速提问:这适用于顶级属性,但我的用户案例要求我按低一级属性进行过滤。 $scope.user = User.get(); $scope.user.role.name;是我需要过滤的属性。
    • 这需要更多的工作,但您应该能够将谓词函数传递给过滤器以应用您需要的任何自定义逻辑。例如:function (value) { return value.role.name === "administrator"; }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 2014-05-30
    • 2014-06-21
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多