Angular.js - 使用ng-repeat搜索对象的过滤器

时间:2013-10-04 09:00:03

标签: angularjs angularjs-ng-repeat

我为我的问题的凌乱描述道歉。我希望你理解它。 我有这个HTML代码:

 <form>
    <input ng-model="attr.query" type="text" placeholder="{{attr.attr_name}}" ng-repeat="attr in attrs">
 </form>
 <table>                
   <tr ng-repeat="element in elements">
        <td ng-repeat="(key, value) in element">{{value}}</td>
   </tr>
 </table>

JS控制器:

$scope.attrs = [{'descr':'descr1'},{'descr':'descr2'}];
$scope.elements = [{'property1" : 'value1', 'property2' : 'value2'},{'property1" : 'value3', 'property2' : 'value4'}];

我需要通过输入查询来过滤每个。但我需要使用与输入字段相同的attr进行过滤。

enter image description here

将滤镜应用于对象数组时遇到了一些麻烦。

由于

1 个答案:

答案 0 :(得分:1)

如果我理解正确(我没有足够的代表在评论中提问,抱歉),您希望过滤一个或多个属性中的数据。

最简单的方法可能是定义范围可访问的自定义过滤器功能。 AngularJS的filter过滤器will happily accept作为评估者。

$scope.customFilter = function(item) {
    var passed = true;
    if(/* the item doesn't pass muster */) {
        passed = false;
    }
    return passed;
}

如果有帮助,我将a fiddle放在一起进行演示。 (注意:查询字段区分大小写。)

相关问题