2016-06-01 8 views
1

アクティビティログページのレコードは、最大100個に制限されています。 ページ上にページ番号を付ける方法を見つけようとしています。 1ページに50レコードを設定します。 $http.get(‘/api/activity’)の呼び出しをgetData関数に渡し、http呼び出しにオフセットを追加する方法はありますか?ページ番号が変更されるたびにオフセット番号が変わるのですか?getData関数にhttp呼び出しを渡すには?

angular.module('myApp').controller('ActivityLogController', function($scope, $log, $rootScope, $http, $state, $interval, $stateParams, NgTableParams, $filter) { 
    return $scope.initActivity = function() { 
    return $http.get('/api/activity').then(function(response) { 
     $scope.activity = _.map(response.data, function(activity) { 
     var ref, ref1; 
     if (activity.User) { 
      activity.name = ((ref = activity.User) != null ? ref.firstName : void 0) + " " + ((ref1 = activity.User) != null ? ref1.lastName : void 0); 
     } else { 
      activity.name = "Null User"; 
     } 
     return activity; 
     }); 
     $scope.activity = _.orderBy($scope.activity, ['createdAt'], ['desc']); 
     return $scope.activityTable = new NgTableParams({ 
     sorting: { 
      day: 'asc' 
     }, 
     page: 1, 
     count: 50 
     }, { 
     total: $scope.activity.length, 
     counts: [], 
     getData: function($defer, params) { 
      var filteredData, orderedData, slicedData; 
      filteredData = params.filter() ? $filter('filter')($scope.activity, params.filter()) : $scope.activity; 
      orderedData = params.sorting() ? $filter('orderBy')(filteredData, params.orderBy()) : filteredData; 
      slicedData = orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()); 
      return $defer.resolve(slicedData); 
     } 
     }); 
    }); 
    }; 
}); 
+1

わからないで作業を見ることができます

var Api = $resource("/data"); this.tableParams = new NgTableParams({}, { getData: function(params) { // ajax request to api return Api.get(params.url()).$promise.then(function(data) { params.total(data.inlineCount); // recal. page nav controls return data.results; }); } }); 

'$ http'コールから約束を返す必要があります:getData:function($ defer、params){return $ http.get( '/ api/activity')。 ...);}); } ' – Rhumborl

答えて

1

あなたはgetData関数内での約束を使用し、ディスプレイを望むものの配列を返すことができます。あなたはただ、この例では、NG-表のページオフセット部分については、しかし、 `のgetData()`内側にAJAX呼び出しを行うための

Ng-Table with a promise

+0

私は彼が' $ http'を使用したいと思いますが、 '$ resource'ではなく、 – Shamoon

+0

と同じです。それを置き換えることができ、配列を返すと関数は機能するはずです –

関連する問題