arrays - 每当调用函数时,如何将元素推送到数组中?

标签 arrays angularjs http ionic-framework infinite-scroll

我正在实现无限滚动。我有一个名为 hotels 的数组,它从 $http.get() 方法获取数据。现在我想用 hotels 数组的值填充一个名为 hotelsNew[] 的新 array。但我想在 hotelsNew 中推值 mj 的增量值。

mj 的值需要在调用函数loadMore() 时更新(递增)。 m 的初始值为 0,j 为 5。当调用 loadMore() 时,m 将再次5 和 j 将是 10 等等。

我无法在任何地方保存 mj 的值,因为 $http.get() 是异步的。有什么正确的方法可以保存mj的值,并在再次调用loadMore()时重用它吗?最大j值为40。当m = j(40)时,它会停止。

这是我的 Controller 代码。

 $scope.loadMore = function() {
      $http.get(url).success(function(data, status, headers, config) {
        if(data) { 
          $scope.hotels = data.hotels;
            for(var i = m; i < j; i++) {
              console.log('i=',i);
              $scope.hotelsNew.push($scope.hotels[i]);
              console.log('hotelsNew',$scope.hotelsNew);
            }
         }
     }

我如何增加 mj 的值?有什么想法吗?

最佳答案

如果 mj 每次递增相同的量,您可以在 Controller 中创建一个局部变量。

var m = 0, j = 5;
$scope.loadMore = function() {
    $http.get(url).success(function(data, status, headers, config) {
        if(data && j < 40) { 
            $scope.hotels = data.hotels;
            for(var i = m; i < j; i++) {
                console.log('i=',i);
                $scope.hotelsNew.push($scope.hotels[i]);
                console.log('hotelsNew',$scope.hotelsNew);
            }
            m += 5;
            j += 5;
        }
    }
}

关于arrays - 每当调用函数时,如何将元素推送到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38496209/

相关文章:

c - 数组打印少一个数字

java - 为什么 Java 中的字符数组接受整数值?

javascript - Protractor :WAITING自定义事件的最佳方式

Java:从 HttpContext 中获取正文?

java - Apache HttpClient 收到 "406 Not Acceptable"错误

HTTP Cookie 过期时间(平均、最大、...)

c - 我们如何返回最后一个字符串的索引或最后一个字符串的基地址?

javascript - 如何从对象中的 forEach 中获取搜索结果?

javascript - ngFacebook 无法使用 phonegap

javascript - 使用 $compileProvider 避免不安全链接