2016-07-02 19 views
0

AngularJS UI bootstrap pagination directiveを使用して小さな検索アプリでページ付けを完了しようとしています。最初の検索後に最初の10件の結果が表示されないことを除いて、ほとんど動作しています。AngularJSページングがほとんど動作します

最初の100個の結果がロードされ、ページごとに10個ずつ表示されるように分割されます。しかし、最初の10ページは、ページ化したページの "1"リンクをクリックした後、UNTILに表示されません。

これはHTML

<uib-pagination total-items="results.totalItems" max-size="10" items-per-page="itemsPerPage" ng-model="currentPage" ng-change="changePage()" direction-links="true" previous-text="&lsaquo;" next-text="&rsaquo;" class="pagination-sm"></uib-pagination> 

これは最初の100件の結果

$scope.search = function() { 
    $scope.isSearching = true; 
    return searchService.search($scope.searchTerms, $scope.currentPage).then(function(es_return) {  
     var totalItems = es_return.hits.total; 
     var totalTime = es_return.took; 
     var numPages = Math.ceil(es_return.hits.total/$scope.itemsPerPage); 
     $scope.results.pagination = []; 
     for (var i = 1; i <= 100; i++) { 
     if(totalItems > 0) 
     $scope.results.totalItems = totalItems; 
     $scope.results.queryTime = totalTime; 
     $scope.results.pagination = searchService.formatResults(es_return.hits.hits); 
     } 
     } 
    ) 
    }; 

をロードし、その後、これらは私がページネーションのため

$scope.paginate = function() { 
    var begin = (($scope.currentPage - 1) * $scope.itemsPerPage); 
    var end = begin + $scope.itemsPerPage; 
    $scope.results.documents = $scope.results.pagination.slice(begin, end); 
    }; 


$scope.changePage = function() { 
    $scope.paginate(); 
}; 
を使用しています関数です私の検索機能であります

私はこの問題の原因が$ scope.search()のこの行だと確信しています

$scope.results.pagination "=" searchService.formatResults(es_return.hits.hits); 

特に等号...?

初期10回の結果は

答えて

0

$scope.results.documents表示されるように、私はまだ... JSを学ぶので、私は「=」を置き換えるべきか本当にわからないangularjsよ、あなたを保持性のようです現在表示されているドキュメント。 searchServiceが結果を返すと、それを設定する必要があります。ページネーションをクリックするときだけでなく、結果が返されます。

$scope.results.paginationは結果の完全な配列です。そのため、ページを変更するときと同じようにスライスする必要があります。 ).then((){$scope.paginate();}); }

+0

シンプルな答えをいただきありがとうございます。私はこれを思い描いていました。シンプルなコードの1行で動作します! – user3125823

0

変更

) };

だからあなたはあなたがそれを作成した後、改ページが発生したことを、確信しています。

+0

努力をいただきありがとうございますが、他の回答は最初の試みで働いていました。私はいくつかのエラーがあなたの仕事を働かせようとしている。 – user3125823

関連する問題