在angular.js中如何动态应用自定义过滤器?
在angular.js中如何动态应用自定义过滤器?
我知道在Angular中,使用ng-repeat应用自定义过滤器的方法大概是这样的:
ng-repeat="request in allRequests | allRequests"
但是我有几个不同的过滤器:
allFutureRequests, allPastRequests, myPastRequests, group1FutureRequests
我希望能动态地替换\'allRequests\'过滤器,并根据用户点击的某些按钮将其替换为其他任意过滤器。
我该怎么做呢?
admin 更改状态以发布 2023年5月21日
最简单的方法就是直接在控制器中进行操作。 这个问题 理得很清楚。
它的格式为 $filter('filtername')(argument)
如果您想在按钮点击时添加过滤器,请执行以下操作:
$scope.onBtnClick = function(index) { $scope.allRequests[index] = $filter('allFutureRequests')($scope.allRequests[index]); }
然后您可以像这样从点击调用:
上面的代码只是将allRequests
数组/对象的索引传递给函数。函数将会在该特定索引中应用该过滤器。
还有,不要忘记在控制器中注入$filter
。