angular javascript 中的 ng-repeat 预过滤器
angular ng-repeat prefilter in javascript
我在 tr 元素上有以下 angular js 过滤器 ng-repeat
。我如何才能在 javascript 中完成所有这些?是否可以在一个自定义过滤器中完成?
注意:showRow是一个函数,returns一个布尔值,搜索字符串是一个字符串
ng-repeat="lob in filtered = (lobs | filter : showRow | filter : searchString | orderBy : 'name':true )
您可以使用 $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");
未测试,但应该足够接近工作。
是的,使用第一种方法,您可以创建自己的过滤器来完成这一切。
代码如下
var firstFilter = $filter('filter')($scope.lobs, $scope.showRow)
var secondFilter = $filter('filter')(firstFilter , $scope.searchString)
var finalFilter = $filter('orderBy')(secondFilter , 'name', true)
不要忘记添加 $filter
对控制器的依赖性
我在 tr 元素上有以下 angular js 过滤器 ng-repeat
。我如何才能在 javascript 中完成所有这些?是否可以在一个自定义过滤器中完成?
注意:showRow是一个函数,returns一个布尔值,搜索字符串是一个字符串
ng-repeat="lob in filtered = (lobs | filter : showRow | filter : searchString | orderBy : 'name':true )
您可以使用 $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");
未测试,但应该足够接近工作。
是的,使用第一种方法,您可以创建自己的过滤器来完成这一切。
代码如下
var firstFilter = $filter('filter')($scope.lobs, $scope.showRow)
var secondFilter = $filter('filter')(firstFilter , $scope.searchString)
var finalFilter = $filter('orderBy')(secondFilter , 'name', true)
不要忘记添加 $filter
对控制器的依赖性