在angular.js中如何动态应用自定义过滤器?

36 浏览
0 Comments

在angular.js中如何动态应用自定义过滤器?

我知道在Angular中,使用ng-repeat应用自定义过滤器的方法大概是这样的:

ng-repeat="request in allRequests | allRequests"

但是我有几个不同的过滤器:

 allFutureRequests, allPastRequests, myPastRequests, group1FutureRequests

我希望能动态地替换\'allRequests\'过滤器,并根据用户点击的某些按钮将其替换为其他任意过滤器。

我该怎么做呢?

admin 更改状态以发布 2023年5月21日
0
0 Comments

最简单的方法就是直接在控制器中进行操作。 这个问题 理得很清楚。

它的格式为 $filter('filtername')(argument)

如果您想在按钮点击时添加过滤器,请执行以下操作:

$scope.onBtnClick = function(index) {
    $scope.allRequests[index] = $filter('allFutureRequests')($scope.allRequests[index]);
}

然后您可以像这样从点击调用:

上面的代码只是将allRequests数组/对象的索引传递给函数。函数将会在该特定索引中应用该过滤器。

还有,不要忘记在控制器中注入$filter

工作示例

0