2016-03-22 7 views
1

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

答えて

0

私はあなたのコードを見て、あなたがページネーションを使用しているので、私は、輸入角度-UIを見つけることができませんでした。チェックアウト:https://angular-ui.github.io/bootstrap/ と簡単な例:

'http://plnkr.co/edit/xxjIBw71hDp9AHSrEhfp?p=preview 
+0

おかげでダニエル!!を、私はそれを試してみますよ。カスタムフィルタの作成と組み込みディレクティブを使った関数の追加があまりにも難しくないので、決して他のディレクティブを使用することは考えていませんでした。 – Rodrigo

関連する問題