Angular.js:存储http.get请求中的变量,以便在不同的$scope函数中全局使用
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');
})
}
};
})
以下是如何同步您的无限滚动。我的意思是在第一次调用(getAll完成)之前阻止loadMore。
.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;
});
}
});
};
})
http://plnkr.co/edit/qohKNUd48czYKASNqCVP
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- 正在全局范围中查找JavaScript函数
- AngularJS:ng之后,重复$scope值未按预期更新
- delete关键字在全局变量上的不同行为
- 在javascript函数中设置全局变量
- 如何将getJson的响应保存在全局变量中
- 全局对象是属于哪个类的对象
- Javascript全局onclick监听器
- 从Javascript方法返回全局变量
- $ionicplatform内的$scope不;不起作用
- 使用$scope方法时的ControllerAs语法
- 访问jsrender模板中的全局javascript变量并更新它
- 如何将ngrepeat下的ngmodel绑定到$scope
- 另一个if(!$scope.$$phase)$scope$apply()szenario-需要帮助才能通关
- javascript无法重新定义函数内部的全局对象
- javascript 中的全局函数
- cordova:例外:财产'requestFileSystem'的[对象全局]不是函数
- AngularJS:没有定义$rootscope的全局函数出错,没有定义$scope
- Angular.js:存储http.get请求中的变量,以便在不同的$scope函数中全局使用
- 从angularJS中的异步$http服务中获取对象,使其可以在$scope中全局访问