[英]Angular.js: Storing variable from http.get request to use globally in different $scope function
我正在尝试在Ionic / Cordova移动应用程序中实现无限滚动。 一旦用户点击页面底部,我的nextBatch变量将保存我需要获取的下一组对象的URL。 唯一的问题是,当我尝试在loadMoreData()函数中访问它时,它显示为未定义。 我尝试使用$ rootScope仅获得相同的结果。 有什么想法我应该如何处理吗?
谢谢!
.controller('HomeCtrl', function($scope,Model) {
var nextBatch; //holds the url of the next batch
$scope.model = []; //used in ng-repeat
//loads an array of 5 objects
Model.getAll().success(function(model){
nextBatch = model.meta.next; //for infinite scrolling
$scope.model = model.objects;
})
$scope.loadMoreData = function() {
if (nextBatch !== undefined) {
Model.getMore(nextBatch).then(function(model){
$scope.model.push(favours);
$scope.$broadcast('scroll.infiniteScrollComplete');
})
}
};
})
这是使无限滚动同步的方法。 我的意思是阻止loadMore直到第一个调用(getAll完成)。
.controller('HomeCtrl', function($scope, Model, $q) {
var nextBatch; //holds the url of the next batch
$scope.model = []; //used in ng-repeat
var defer = $q.defer();
var promise = defer.promise;
//loads an array of 5 objects
Model.getAll().then(function(model){
nextBatch = model.meta.next; //for infinite scrolling
$scope.model = model.objects;
defer.resolve(model);
return defer.promise;
});
$scope.loadMoreData = function() {
promise.then(function(result){
if(nextBatch !== "END"){
Model.getMore(nextBatch).then(function(favours){
angular.forEach(favours.objects, function(item){
$scope.model.push(item);
});
nextBatch = favours.meta.next;
});
}
});
};
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.