2017-12-19 7 views
0

私は角度のついていないので、実際に私の頭を丸めているわけではありません。Angularjs ng-tableページ設定

私は工場間でコントローラ間でデータを共有しています。私はこれをやっています。大量のデータをリストする要求がたくさんあるためです。

(function() { 
'use strict'; 
angular 
    .module('app.customers') 
    .controller('CustomersController', CustomersController) 
    .factory('dataShare',function($rootScope,$timeout){ 
     var service = {}; 
     service.data = false; 
     service.sendData = function(data){ 
      this.data = data; 
      $timeout(function(){ 
       $rootScope.$broadcast('data_shared'); 
      },100); 
     }; 
     service.getData = function(){ 
      return this.data; 
     }; 
     return service; 
    }); 

そして、私は

$http.post("http://api.dev/v1/customers/search", $scope.searchData) 
    .then(function (response) { 
      $scope.customers = response.data; 
      dataShare.sendData(response.data); 
     }, 
//.... 

をやっているコントローラに私は別の私がこれを持ってNgTablesためのコントローラがあります。

$scope.$on('data_shared',function(){ 
     $scope.customers = [{}]; 
     var data = dataShare.getData(); 
     console.log("here"); 
     $scope.customers = data; 

     console.log($scope.customers.length); 
     vm.tableParams3 = new ngTableParams({ 
      page: 1,   // show first page 
      count: 10, 
      // count per page 
     }, { 
      total: $scope.customers.length, // length of data 
      getData: function (params) { 
       // use build-in angular filter 
       var filteredData = params.filter() ? 
         $filter('filter')($scope.customers, params.filter()) : 
         $scope.customers; 
       var orderedData = params.sorting() ? 
         $filter('orderBy')(filteredData, params.orderBy()) : 
         $scope.customers; 

       params.total(orderedData.length); // set total for recalc pagination 
       return (orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count())); 
      } 
     }); 

データが正しく渡されると、コンソールの出力を.logは期待されているものですが、ページカウントは完全に無視されています。しかし、私が下のページオプションを変更すると、そのページから始まります。

vm.tableParams3 = new ngTableParams({ 
      page: 1,   // show first page 
      count: 10,   // count per page 
     }, 

私はすべての種類、およそ20種類の質問とNG-テーブルのドキュメントを読むが、どんなに私が何をすべきか、私はそれが仕事を得るカントを試してみました。どんな助けもありがとう。

答えて

0

私はAngularのエキスパートではありませんが、私には単にページ番号を設定しているようです。あなたの

$scope.customers = data; 

の下

は、あなたがで開始したいページを設定してみてください。

$scope.page = "1"; 
関連する問題