我有一个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这样的东西,我可以应用过滤器,但是调用一个函数(这将渲染图形)。
如果这是正确的方法,我该怎么做,否则,我该怎么办?
答案 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);
});
因此,您可以基本上在控制器上进行所有过滤,或者更好的是,创建一个可以为您处理过滤的服务。