我正在实现无限滚动。我有一个名为 hotels
的数组,它从 $http.get()
方法获取数据。现在我想用 hotels
数组的值填充一个名为 hotelsNew[]
的新 array
。但我想在 hotelsNew
中推值 m
和 j
的增量值。
m
和j
的值需要在调用函数loadMore()
时更新(递增)。 m
的初始值为 0,j
为 5。当调用 loadMore()
时,m
将再次5 和 j
将是 10 等等。
我无法在任何地方保存 m
和 j
的值,因为 $http.get()
是异步的。有什么正确的方法可以保存m
和j
的值,并在再次调用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);
}
}
}
我如何增加 m
和 j
的值?有什么想法吗?
最佳答案
如果 m
和 j
每次递增相同的量,您可以在 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/