我有这样的对象数组:
$scope.userList = [{"Name" : "Sumit", "Surname" : "Ranjan"}, {"Name" : "Claudio", "Surname" : "Gomes"}, {"Name" : "Sumit", "Mwanda" : "Mwanda"}];
我使用REST API在后端创建用户。我创建了一个服务因子来做到这一点。
我想逐个上传用户。我在启动进程之前使用$ ionicLoading显示加载图标,并且只有在处理完所有数组项后才想关闭它。
以下是我的代码:
//显示加载图标
var showLoading = function() {
$ionicLoading.show({
content: 'Loading',
animation: 'fade-in',
showBackdrop: true,
maxWidth: 200,
showDelay: 0
});
}
然后运行循环来处理每个项目
for(var i=0; i< Object.keys($scope.userList).length; i++){
var promise = CreateNewUser.create( {
$scope.userList[i];
}
}).$promise;
promise.then(function(_response) {
//to-do some local stuff here
})
}
我的问题是,加载图标会在不处理循环中的所有项目的情况下卸载。 如何关闭加载图标只有数组中的所有项目都已循环处理。
提前致谢。
祝你好运, 萨米特
答案 0 :(得分:0)
控制器:
$scope.userList = [{"Name" : "Sumit", "Surname" : "Ranjan"}, {"Name" : "Claudio", "Surname" : "Gomes"}, {"Name" : "Sumit", "Mwanda" : "Mwanda"}];
$scope.showLoading = function() {
$ionicLoading.show({
content: 'Loading',
animation: 'fade-in',
showBackdrop: true,
maxWidth: 200,
showDelay: 0
});
}
$scope.hide = function(){
$ionicLoading.hide();
};
$scope.createNewUsers = function () {
$scope.showLoading();
var promiseArray = [];
for(var i=0; i< Object.keys($scope.userList).length; i++){
var aPromise = CreateNewUser.create( {
$scope.userList[i];
}
promiseArray.push(aPromise);
}
$q.all(promiseArray).then(function(){
$scope.hide();
})
}
//call the method wherever you want..!
$scope.createNewUsers();
如果这不起作用..!
然后尝试将完整的$scope.userList
传递给服务,并在CreateNewUser.create();
同时检查$q
希望这是一个帮助..!