过滤显示对象的ng-repeat?

时间:2014-10-30 22:27:15

标签: angularjs angular-filters

当我使用ng-repeat显示对象时,过滤器不起作用。

如果对象的相同对象是对象数组,则一切都按预期工作。

这是一个展示http://plnkr.co/edit/hBEk34U9SLlfoI5Lhitq?p=preview

的傻瓜
Test.controller('TestController', function($scope) {
  $scope.data = {
    1: {value: '1'},
    2: {value: '2'},
    3: {value: '3'},
    4: {value: '1'},
    5: {value: '2'},
    6: {value: '3'},
    7: {value: '1'},
    8: {value: '2'},
    9: {value: '3'}    
  };
  $scope.filters = {}
});

<input type="text" ng-model="filters.value">
<div ng-repeat="(id, thing) in data | filter: filters">{{thing.value}}</div>

1 个答案:

答案 0 :(得分:0)

如果没有关闭,答案是你不能在对象上使用内置过滤器。就我而言,我只是这样做了:

<li ng-repeat="product in products | toArray | filter:filters">

# Convert to array
SingularAdmin.filter 'toArray', () ->
    return (items) ->
        if !items
            return []

        filtered = []
        angular.forEach items, (item) ->
            filtered.push(item)

        return filtered
相关问题