ng-repeat模型中的角度滤波器

时间:2013-08-02 04:55:14

标签: angularjs filter angularjs-ng-repeat

我对AngularJS中的过滤有疑问。我想限制仅在可见项目上的ng-repeat生成视图中的过滤。以下是我的情况示例:

我有一个简单的数组ob对象。每个对象都有4个属性 - title,numerus,description和supervisorTitle。

当我创建视图时,我不希望显示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。所以它对整个模型都很感兴趣,而不仅仅是它的可见部分(标题,数字和描述)。

这是有道理的,但我怎么能限制它,所以它只会过滤标题,数字和描述?

由于

1 个答案:

答案 0 :(得分: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)">