2014-08-27 119 views
2

我是AngularJS的新手。Angularjs - 搜索過濾器後出現分頁

搜索結果可以顯示在一個頁面,但爲什麼下一個和以前按鈕顯示

http://jsfiddle.net/2ZzZB/1473/

<input type="text" id="txtNotessearch" ng-model="search_notes" class="form-control input-sm" placeholder="SEARCH"> 
... 
    <ul> 
     <li ng-repeat="item in data | filter:search_notes | startFrom:currentPage*pageSize | limitTo:pageSize"> 
        {{item}} 
     </li> 
    </ul> 

糾正我,如果我錯了。

+0

你是什麼問題確切嗎? – aymericbeaumet 2014-08-27 10:34:01

+0

我的搜索後,只有兩個結果出現,然後爲什麼分頁即將到來。 – Madhes 2014-08-27 10:35:00

+1

我認爲他/他意味着搜索結果可以顯示在一個頁面中,但爲什麼會顯示「next」和「previous」按鈕。 – khemry 2014-08-27 10:37:47

回答

2

因爲NumberOfPages未被過濾。 而不是使用$ scope.data.length,您應該使用過濾器後的長度。

function MyCtrl($scope, $filter) { //Do not forget to inject $filter 
    $scope.currentPage = 0; 
    $scope.pageSize = 10; 
    $scope.data = []; 

    $scope.numberOfPages=function(){ 
     var myFilteredData = $filter('filter')($scope.data,$scope.search_notes); //Filter the data 
     return Math.ceil(myFilteredData.length/$scope.pageSize);     
    } 
    for (var i=0; i<45; i++) { 
     $scope.data.push("Item "+i); 
    } 
} 

此外,我會修改NG-禁用下一步按鈕

button "ng-disabled="(currentPage + 1) == numberOfPages()" 

而且我會添加到search_notes平變化當前頁= 1。

這裏有 http://jsfiddle.net/rLots5zd/

+0

你能否給我提供例如jsfiddle鏈接? – Madhes 2014-08-27 11:24:02

+0

嗨馬德西,我用代碼和小提琴更新了答案 – 2014-08-27 11:28:18

+0

謝謝,它的工作正常。 – Madhes 2014-08-27 11:49:39