我在tr元素上有以下角度js过滤器ng-repeat
。我怎么能在javascript中完成所有这些?是否可以在一个自定义过滤器中执行此操作?
注意:showRow是一个返回bool的函数,搜索字符串是一个字符串
ng-repeat="lob in filtered = (lobs | filter : showRow | filter : searchString | orderBy : 'name':true )
答案 0 :(得分:1)
您可以使用$ filter服务或$ scope。$ eval:
$filter('orderBy')(
$filter('filter')(
$filter('filter')($scope.lobs, $scope.showRow),
$scope.searchString),
'name', true);
$scope.$eval("lobs | filter : showRow | filter : searchString | orderBy : 'name':true");
未经测试,但应足够接近工作。
是的,使用第一种方式,您可以创建自己的过滤器来完成所有这些。
答案 1 :(得分:1)
代码如下所示
var firstFilter = $filter('filter')($scope.lobs, $scope.showRow)
var secondFilter = $filter('filter')(firstFilter , $scope.searchString)
var finalFilter = $filter('orderBy')(secondFilter , 'name', true)
不要忘记在控制器
上添加$filter
依赖项