Angularjs ng-repeat过滤所有数据,而不仅仅是过滤后的结果

时间:2014-11-28 02:06:30

标签: angularjs angularjs-ng-repeat angularjs-filter

嗨,我是angularjs的新手,我只是有问题要问。

这是我的ng-repeat代码。

<ul ng-repeat="todo in filteredData | filter:search">

似乎这段代码只会过滤过滤后的数据,而不是alldata本身。

filteredData总是等于10,因为我在angularjs中使用了分页。

现在我的问题是有一种方法可以过滤alldata而不仅仅是filterData? 我试过了

<tr ng-repeat="todo in filteredData | filter:alldata:search">

但是没有用。

由于

2 个答案:

答案 0 :(得分:1)

执行此操作的最佳方法是将分页创建为过滤器。 然后你的代码将是

<tr ng-repeat="todo in alldata | filter:search | pagination:pageNum:perPage">

分页过滤器:

module.filter('pagination', function(){
  return function(array, page, perPage){
    return array.slice(page * perPage, (page+1) * perPage);
  }
});

这里有完整的工作代码:http://codepen.io/SimeonC/pen/gbpqNM?editors=101(请原谅jade和coffeescript - 编辑器上方的眼睛向您显示已编译的HTML / JS)

答案 1 :(得分:0)

你可以使用这样的东西,假设你的完整数据列表存储在

$scope.allData

然后您可以在<li>

中使用
<li ng-repeat="todo in filterdData = (allData | filter:search)"> </li>