ng-repeatを作成していて、ng-modelを使用して表示されている要素の量を変更しても問題ありません。また、ng-clickとng-classを使用してページネーションを作成しています。ここで問題が発生しています。AngularJSのコントローラのng-clickスコープの更新
私はこのようないくつかのような量制限など、コントローラのスコープ内の変数、全ページ、現在のページを定義しています:
// definitions
$scope.clients;
$scope.clientsAmount;
// amount of visible clients
$scope.limitArray = [8,12,16];
$scope.clientsLimit = 8;
// function to get the amount of pages
function getPages(els, limit) {
// get the total pages considrering the amount of elements
$scope.totalPages = Math.ceil(els/limit);
$log.log('get - total => ', $scope.totalPages);
}
その後、私は前/次に行くためのいくつかの機能を持っていますページ。ページのロード時に正常に動作しますが、コントローラの有効範囲の値が更新されても(clientsLimitの新しい値を使用してgetPages関数を再度呼び出す$ watchを使用して)、clientsLimitの値を変更したときに、 clickディレクティブは、ページの値は変更されません。 paramは、これが最後の/最初のボタンか、次の/前のボタンかをチェックすることです。
// NEXT BUTTON
$scope.nextBtn = function(param){
$log.log('value => ', value);
// check if this is not the last page and the param is true
// go to the next page
if($scope.currentPage !== $scope.totalPages && param) {
$scope.currentPage++;
} else if (!param) {
$scope.currentPage = $scope.totalPages;
}// conditional end
};// next button end
// PREVIOUS BUTTON
$scope.prevBtn = function(param){
// check if this is not the first page and the param is true
// go to the preivious page
if($scope.currentPage !== 1 && param) {
$scope.currentPage--;
} else if (!param) {
$scope.currentPage = 1;
}// conditional end
};// previous button end
私はNG-クラスとngのクリックは、コントローラの範囲の変更を反映していない言ったようにこれは、HTML
<li ng-class="firstPageCheck()">
<a href aria-label="First" ng-click="prevBtn(false)">
<span aria-hidden="true">First</span>
</a>
</li>
<li ng-class="firstPageCheck()">
<a href aria-label="Previous" ng-click="prevBtn(true)">
<span aria-hidden="true">Previous</span>
</a>
</li>
<li ng-class="lastPageCheck()">
<a href aria-label="Next" ng-click="nextBtn(true, value=totalPages)">
<span aria-hidden="true">Next</span>
</a>
</li>
<li ng-class="lastPageCheck()">
<a href aria-label="Last" ng-click="nextBtn(false, value=totalPages)">
<span aria-hidden="true">Last</span>
</a>
</li>
です。
は、ここでファイルやJSONデータとplunkrです:
http://plnkr.co/edit/eVSW449vJ5cv6WWvyJhc?p=info
========================== =============
EDIT
こんにちは。基本的にこれは "私はばかだよ編集"です:P。コントローラの複数のインスタンスを追加していたことが分かります。そのため、select ng-modelはコントローラのインスタンスだけを更新していましたが、他のインスタンス(はい...ある時点では3:Sまで含む)実行時に
は、ここで一つだけのコントローラインスタンスとすべてが改ページで[OK]を作業と更新Plunkerリンクです: http://plnkr.co/edit/eVSW449vJ5cv6WWvyJhc
おかげでダニエル!!を、私はそれを試してみますよ。カスタムフィルタの作成と組み込みディレクティブを使った関数の追加があまりにも難しくないので、決して他のディレクティブを使用することは考えていませんでした。 – Rodrigo