Angularjs 使用ng repeat生成的表上的独立筛选字段

Angularjs 使用ng repeat生成的表上的独立筛选字段,angularjs,ng-repeat,Angularjs,Ng Repeat,在我的Angular项目中,我使用ng repeat生成了一个表,该表应该通过四个独立字段进行过滤,如下图所示: 我的问题是,如何使我在其中一个查询字段上键入的内容不会干扰其他字段?e、 g:在“项目支持”列中键入项目名称仍将按预期筛选表,但不应如此 我想我想要的是每个列都有单独的作用域,同时只要激活一个过滤器,给定的行就会消失 这是在表格标题和输入字段下生成表格的代码: <tr ng-repeat="item in page2ctrl.projects | filter:query.n

在我的Angular项目中,我使用
ng repeat
生成了一个表,该表应该通过四个独立字段进行过滤,如下图所示:

我的问题是,如何使我在其中一个查询字段上键入的内容不会干扰其他字段?e、 g:在“项目支持”列中键入项目名称仍将按预期筛选表,但不应如此

我想我想要的是每个列都有单独的作用域,同时只要激活一个过滤器,给定的行就会消失

这是在表格标题和输入字段下生成表格的代码:

<tr ng-repeat="item in page2ctrl.projects | filter:query.name | filter:query.budget | filter:query.period | filter:query.partners">
    <td>
        <label class="checkbox-inline">
            <input type="checkbox" ng-model="page2ctrl.projects[$index].isSelected">
            <p><span></span><p>
        </label>
    </td>
    <td><p><strong>{{item.name}}</strong></p></td>
    <td><p>{{item.budget}}</p></td>
    <td><p>{{item.startDate}}</p></td>
    <td><p>{{item.partners}}</p></td>
</tr>


{{item.name}}

{{item.budget}}

{{item.startDate}

{{item.partners}


如何“个性化”过滤查询?

我认为可以使用表达式的对象形式来实现这一点。例如,按名称列出的筛选器如下所示:

filter:{ name: query.name }
我不能100%肯定这会奏效,因为我自己还没有尝试过这种方法。另一方面,您完全可以使用谓词函数或自定义过滤器来实现


请参见

您的过滤器都只是字符串。所以过滤器不知道在哪个键上进行过滤。在每个筛选器上指定一个键,以明确每个筛选器应在哪个键上进行筛选。像这样:

<tr ng-repeat="item in page2ctrl.projects | filter: { name: query.name } | filter: { budget: query.budget } | filter: { startDate: query.period } | filter: { partners: query.partners }">
    <td>
        <label class="checkbox-inline">
            <input type="checkbox" ng-model="page2ctrl.projects[$index].isSelected">
            <p><span></span><p>
        </label>
    </td>
    <td><p><strong>{{item.name}}</strong></p></td>
    <td><p>{{item.budget}}</p></td>
    <td><p>{{item.startDate}}</p></td>
    <td><p>{{item.partners}}</p></td>


{{item.name}}

{{item.budget}}

{{item.startDate}

{{item.partners}