我知道在角度方面,使用ng-repeat应用自定义过滤器将如下所示:
ng-repeat="request in allRequests | allRequests"
但是我有几个不同的过滤器。例如
allFutureRequests, allPastRequests, myPastRequests, group1FutureRequests
我希望换掉所有请求'过滤并动态地将其替换为任何其他过滤器,具体取决于用户点击的某些按钮的内容。
我将如何做到这一点?
答案 0 :(得分:1)
最简单的方法是在控制器中执行此操作。 This question总结得非常好。
它的工作格式为$filter('filtername')(argument)
如果您想在按钮点击时添加过滤器,请执行以下操作:
$scope.onBtnClick = function(index) {
$scope.allRequests[index] = $filter('allFutureRequests')($scope.allRequests[index]);
}
您可以通过以下点击来调用它:
<button ng-repeat="request in allRequests | allRequests" ng-click="onBtnClick($index)">
上面只是将allRequests
数组/对象的索引传递给函数。然后,该函数将该过滤器应用于其中的特定索引。
另外,不要忘记将$filter
注入您的控制器。