我正在尝试将搜索框与分页功能结合起来。
对于图像列表,请考虑以下标记:
<div class="panel panel-info" ng-repeat="image in galleryCtrl.images |
startFrom: galleryCtrl.currentPage * galleryCtrl.resultsPerPageNum |
limitTo: galleryCtrl.resultsPerPageNum | filter: search | orderBy: sort">
和我的搜索框:
<div class="form-group" ng-hide="mySearch === 'false'">
<label for="searchbox">Search: </label>
<input type="text" id="searchbox" ng-model="search"
class="form-control" placeholder="What are we searching for?">
</div>
我的问题是,这种方式只搜索当前页面中的图像。如果我搜索第二页上出现的图像并且我在第一页上,则不会显示结果。我怎样才能首先应用搜索过滤器而不是“分页”?
修改 现在的问题是,在搜索框中输入多个字母后,没有搜索结果。 对于我的分页,我使用以下过滤器:
app.filter('startFrom',function(){
return function(input,start) {
start = +start; //int parsing
return input.slice(start);
}
});
也许这就是问题?
答案 0 :(得分:1)
您应该在过滤器列表中预先移动filter: seach
。这样,数据首先被过滤,然后被分页,然后排序。
像这样:
<div class="panel panel-info" ng-repeat="image in galleryCtrl.images | filter: search | startFrom: galleryCtrl.currentPage * galleryCtrl.resultsPerPageNum | limitTo: galleryCtrl.resultsPerPageNum | orderBy: sort">