2017-04-02 13 views
0

私はこの問題を解決したと思っていましたが、私は助けを提供してくれませんでした。

基本的には、私のスコープの原因となっているコントローラーとスコープに問題があります。$ watch()は、私が望んでいないときに呼び出されるようになっています。

私は、異なるコントローラとビューを使用して、ドロップダウンとページネーションタグを持つ角度表示(html)を持っています。 (form_item_Division.htmlは、単に部門のドロップダウンです)

<div class="panel panel-primary panel-shad-1" ng-controller="DashboardIEPItemDraftCtrl"> 
     <div ng-include="'views/partials/form_item_Division.html'"></div> 
     <div ng-include="'app/dashboard/iep.html'" ng-controller="DashboardIEPItemDraftCtrl"></div> 
</div> 

マイiep.htmlは次のようになります:

<div ng-controller="DashboardIEPItemDraftCtrl"> 
<div ng-include="'app/dashboard/iepitem_table1.html'" ng-if="numberOfItemsByUserDivision > 0"></div> 

     <div class="col-xs-12 text-center" ng-show="totalNumberPages > 1"> 
      <pagination items-per-page="itemsPerPage" 
        total-items="numberOfItemsByUserDivision" 
        ng-model="currentPage" 
        max-size="3" 
        boundary-links="true" 
        rotate="false" 
        class="pagination-sm panel-shad-1" 
        num-pages="totalNumberPages" 
        previous-text="&lsaquo;" 
        next-text="&rsaquo;" 
        first-text="&laquo;" 
        last-text="&raquo;"> 
      </pagination> 
     </div> 
</div> 

私iepitem_table1.htmlは定義

まず、私はこれを持っています別のコントローラの下にあります。それは次のようになります。私のスクリプトの

<table class="table table-condensed table-striped table-hover" ng-controller="IEPItemTableCtrl"> 

    (table layout defined here) 

</table> 

関連部分を以下に示します。

$scope.getItemsBySelectedDivision = function (selectedDivisionId) { 
    blah.get({ count: true, filter: 'DivisionPerformingId eq ' + 
    selectedDivisionId }).$promise.then(
     function (response) { 
     $scope.itemsByUserDivision.length = 0; 
     $scope.itemsByUserDivision = response.value; 
     $scope.numberOfItemsByUserDivision = response.value.length; 
     $scope.totalNumberPages = Math.ceil(response.value.length/ 
     $scope.itemsPerPage); 
     var pagedData = $scope.itemsByUserDivision.slice(0, 
     $scope.itemsPerPage); 
     $scope.itemsByUserDivision = pagedData; 
     }, 
     function (error) { 
      // Do something when it errors 
     }); 
     }; 

$scope.$watch("currentPage", function() { 
    if ($scope.itemsByUserDivision != null) { 
    $scope.itemsByUserDivision = originalItems; 
    var pagedData = $scope.itemsByUserDivision.slice(($scope.currentPage - 
    1) * $scope.itemsPerPage, $scope.currentPage * $scope.itemsPerPage); 
    $scope.itemsByUserDivision = pagedData; 
} 
}); 

私はドロップダウンリストから部門を選択し、すべてがうまくているページネーションタグとページをスクロールするとき。しかし、複数のページを持つ部門のページをスクロールして戻って別の部門を選択すると、結果が正しく表示されません。これは$ scope($ scope())が呼び出されているからだと思います。このシナリオではコントローラを正しく配置していないと思います。いずれにしても、どんな助けでも大歓迎です。

おかげで、あなたが見ている変数の変化を比較することができ

ピート

答えて

0

$scope.$watch("currentPage", function (oldVal,newVal) { 
     if(newVal!==oldVal){ 
       if ($scope.itemsByUserDivision != null) { 
       $scope.itemsByUserDivision = originalItems; 
       var pagedData =$scope.itemsByUserDivision.slice(($scope.currentPage - 
     1) * $scope.itemsPerPage, $scope.currentPage * $scope.itemsPerPage); 
     $scope.itemsByUserDivision = pagedData; 
    } 
    } 
    }); 
+0

こんにちはVEDは、私はこれを実行しようとしましたが、することができませんでした。少し具体的にお願いしますか? – Pete

+0

あなたはまだ問題に直面していますか? – Ved

関連する問題