2016-06-01 5 views
1

내 활동 기록 페이지의 기록은 최대 100 자로 제한됩니다. 페이지에서 페이지 매김을 갖는 방법을 찾고 있습니다. 페이지 당 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

확실하지 잉 - 테이블의 페이지에서 작동하지만, GetData의()'내부의 아약스 호출을 수행하기위한 참조하면 단지 수 getData : function ($ defer, params) {return $ http.get ('/ api/activity'). 다음은 (function (data) {return data.slice() 함수를 사용하여 약속을 반환해야합니다. ...);}); }' – Rhumborl

답변

1

당신은 getData 함수 내에서 약속을 사용하고 디스플레이를 원하는 배열을 반환 할 수 있습니다.

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; 
    }); 
    } 
}); 

당신은`이 예는 오프셋 부분에 대한

Ng-Table with a promise

+0

나는 그가'$ http'를 사용하기를 원하고'$ resource'가 아니라고 생각한다. – Shamoon

+0

동일하다. 대체 할 수 있고, 배열을 반환하면 함수가 작동해야한다. –

관련 문제