AngularJS过滤器显示不包含过滤器文本框中的字符串的记录

时间:2014-02-21 17:59:21

标签: angularjs filter

我正在使用angularJS过滤器来过滤网格视图中的数据。这是我的.cshtml代码:

<quickfilter search-model="search"></quickfilter>
<table class="grid">
<thead>
    <tr>        
        <th>State Code</th>
        <th>Company ID</th>
        <th>Work Comp Code</th>
        <th>Rate</th>               
    </tr>
</thead>
<tr ng-repeat="m in models | filter:search ">
   <td>
        <td><span ng-bind="m.StateCode"></span></td>
        <td><span ng-bind="m.CompanyId"></span></td>
        <td><span ng-bind="m.WorkCompCd"></span></td>
        <td><span ng-bind="m.Rate"></span></td>         
    </tr>
</table>

过滤器会根据过滤数据,但也会显示一些不包含我在过滤器文本框中输入的字符串的记录。例如,如果我输入“111”,它会显示包含该记录的记录,以及一些不包含该记录的记录。以前有人有这个问题吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

由于过滤器正在过滤模型m所有属性,如果任何属性包含测试“111”,那么它将过滤掉整个模型。

这是因为您要将过滤器应用于ng-repeat

<tr ng-repeat="m in models | filter:search ">

因此,m的任何属性都会受到过滤器的影响。