应用像ng-repeat这样的过滤器,但没有ng-repeat

Apply filters like ng-repeat, but without ng-repeat

本文关键字:ng-repeat 过滤器 应用      更新时间:2023-09-26

我有一个ng-repeat:

  <tr data-ng-repeat="worktime in workTimesFiltered = (worktimes | filter:{ customerId : customerFilter } | filter:{ projectId : projectFilter } | dateRangeFilter:startDateFilter:endDateFilter)">
                <td>{{worktime.customerName}}</td>
                <td><em>{{worktime.employee}}</em>
  </tr>

它链接到一些下拉过滤器,如customerId和ProjectId。

不,我需要使用谷歌图表渲染一些图表。

我虽然有办法,但$watch - 下拉,然后使用工作时间过滤图表的数据。

现在我意识到这不起作用,因为我在最新过滤完成之前(一旦选择框更改)就获得了过滤列表。

我正在寻找类似 ng-repeat 的东西,我可以应用过滤器,但改为调用一个函数(这将呈现图形)。

如果这是正确的方法,我该怎么做,否则,我该怎么办?

您可以显式注入 $filter 服务函数,然后可以使用该$filter获取模块(或其依赖项)上存在的任何筛选器函数。

以下是 Angular 的 API 参考中的一个例子 - $filter

angular.module('filterExample', [])
  .controller('MainCtrl', function($scope, $filter) {
     $scope.originalText = 'hello';
     $scope.filteredText = $filter('uppercase')($scope.originalText);
});

因此,您基本上可以在控制器上进行所有筛选,或者更好的是,创建一个将为您处理筛选的服务。