0

需要跟踪我的偏移量,以便每次滚动或单击“加载更多”时都可以获得下一组。它提高了性能。我在这里尝试通过设置偏移量和限制并作为请求参数传递给我的节点服务器,但是如何使用偏移量在该限制之后更新或增加:

我的网址为:/foo?limit=7&&offset=0;

我的角度控制器功能为:

$scope.findDetails = function(){
    var limit = 10;
    var offset = 0;
    //DataService.getUsers(limit,offset).then(function(customerdetails){
    DataService.getUsers({limit,offset},function(customerdetails){
        $scope.customers = customerdetails;
    }, function(error){
        $scope.status = 'Unable to load customer data: ' + error.message;
    });
};
4

2 回答 2

0
var $scope.height = $('#div-height').height()
var flag = false;
var $scope.customers = []
$(window).scroll(function() {
  if ($(this).scrollTop() > $scope.height-2000) {
                     if (!flag) {
                         flag = true;
                           refreshCustomers();
                     }
                 }
         });
function refreshCustomers() {
            DataService.getCustomers().then(function (data) {
                $scope.customers = $scope.customers.concat(data);

                setTimeout(function () {
                    $scope.height = $('#div-height').height();
                    flag = false
                }, 0.1);
            });
        }

在数据服务中

    factory.getCustomers = function(){
        return $http.get(...api......&&limit=7).then(function (results) {
            var customers = results.data.customers;
            return customers;
        });
    };

现在窗口滚动到一定高度(windowHeight-2000px)后,再次调用api获取数据。先前的数据正在与当前数据连接。

于 2016-06-05T17:41:06.847 回答
0

您必须将偏移量保持在控制器的范围内,并在每次无限指令请求显示更多记录时更新偏移量:

$scope.limit = 10;
$scope.offset = 0;

//bind this function to the ng-infinite directive
$scope.infiniteScrollFunction = function() {
   $scope.offset += $scope.limit;
   $scope.findDetails(); 
};

$scope.findDetails = function() {
   DataService.getUsers({limit: $scope.limit,offset: $scope.offset},
      function(customerdetails){
   ...
}
于 2015-11-27T13:44:31.767 回答