【问题标题】:Angular filter in ng-repeat modelng-repeat 模型中的角度过滤器
【发布时间】:2013-08-02 04:55:13
【问题描述】:

我有一个关于 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 上工作。所以它适用于整个模型,而不仅仅是它的可见部分(标题、数字和描述)。

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

谢谢

【问题讨论】:

  • 试试这个:" |限制到:"

标签: angularjs filter angularjs-ng-repeat


【解决方案1】:

试试这个。

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

$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)"> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    相关资源
    最近更新 更多