应用ng-repeat等过滤器,但不使用ng-repeat

时间:2015-02-04 16:37:43

标签: javascript angularjs

我有一个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。

不,我需要使用Google Charts渲染一些图表。

我虽然有办法,但是请观看下拉菜单,然后使用workTimesFiltered来获取图表的数据。

现在我意识到这不起作用,因为我在最新过滤完成之前获得了过滤列表(只要选择框发生变化)。

我正在寻找像ng-repeat这样的东西,我可以应用过滤器,但是调用一个函数(这将渲染图形)。

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

1 个答案:

答案 0 :(得分:1)

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

以下是Angular's API Reference - $filter

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

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