0

我有一个关于 AngularJS 过滤的问题。我想限制在 ng-repeat 生成的视图中仅对可见项目进行过滤。这是我的情况的示例:

我有一个简单的数组 ob 对象。每个对象有 4 个属性 - 标题、数字、描述和主管标题。

当我创建视图时,我不想显示 supervisorTitle,所以生成这种视图的代码是这样的:

<tr ng-repeat="reportUnit in reportUnits | filter:filterRpText"> 
   <td on-finish-report-units>{{reportUnit.title}}</td>
   <td>{{reportUnit.numerus}}</td>
   <td>{{reportUnit.description}}</td>
</tr>

但是,当我使用 ng-model="filterRpText" 我注意到的输入进行过滤时,过滤器也在 supervisorTitle 上工作。所以它适用于整个模型,而不仅仅是它的可见部分(标题、数字和描述)。

这是有道理的,但我该如何限制它,所以它只会过滤标题、数字和描述?

谢谢

4

1 回答 1

2

尝试这个。

您可以创建自定义过滤器,放入控制器

$scope.myFilter = function(reportUnit) {
    return function(reportUnit) {
         return reportUnit.title.indexOf($scope.filterRpText) ||
                reportUnit.numerus.indexOf($scope.filterRpText) ||
                reportUnit.description.indexOf($scope.filterRpText);
    }
}

在模板中,添加过滤器

<tr ng-repeat="reportUnit in reportUnits | filter:myFilter(reportUnit)"> 
于 2013-08-02T05:22:45.327 回答