Angularjs 从函数调用函数
我有这个函数,它加载一个JSON文件并填充作用域。 如果失败,它将加载一个带有两个选项的ionicPopup,确定和重试。 我想在重试时重新启动该函数 这是我的密码Angularjs 从函数调用函数,angularjs,ionic-framework,Angularjs,Ionic Framework,我有这个函数,它加载一个JSON文件并填充作用域。 如果失败,它将加载一个带有两个选项的ionicPopup,确定和重试。 我想在重试时重新启动该函数 这是我的密码 $scope.loadEvents = function () { $http.get('https://api.paris.fr/api/data/1.4/QueFaire/get_activities/?token=[foobar]&cid=3,9,18,20,16,10,4,37,1,29,30,11,42,25,5
$scope.loadEvents = function () {
$http.get('https://api.paris.fr/api/data/1.4/QueFaire/get_activities/?token=[foobar]&cid=3,9,18,20,16,10,4,37,1,29,30,11,42,25,5,33,8,39,6,40,17,38,34,32,2,44,23&tag=6,4,7,44,2,45,48&created=0&start=0&end=0&offset=1&limit=50',{header : {'Content-Type' : 'application/json; charset=UTF-8'}})
.success(function (data) {
$ionicLoading.hide();
$scope.products = data.data;
var randomProduct = Math.round(Math.random() * ($scope.products.length - 1))
$scope.currentProduct = angular.copy($scope.products[randomProduct]);
$scope.currentProduct.image = $scope.checkhttp();
})
.error(function (data, status, headers, config) {
$ionicLoading.hide();
$scope.errorMessage = "Couldn't load the list of events, error # " + status;
var alertPopup = $ionicPopup.confirm({
title: 'Could not load list of events, error #0',
template: '',
buttons: [
{text: 'OK'},
{
text: '<b>Retry</b>',
type: 'button-positive',
onTap: function(e) {
console.log("Reessayer");
//retry loadEvents()
return false;
}}]
});
console.log($scope.errorMessage);
});
}
$scope.loadEvents();
$scope.loadEvents=函数(){
$http.get('https://api.paris.fr/api/data/1.4/QueFaire/get_activities/?token=[foobar]&cid=3,9,18,20,16,10,4,37,1,29,30,11,42,25,5,33,8,39,6,40,17,38,34,32,2,44,23&tag=6,4,7,44,2,45,48&created=0&start=0&end=0&offset=1&limit=50',{header:{'Content-Type':'application/json;charset=UTF-8'})
.成功(功能(数据){
$ionicLoading.hide();
$scope.products=data.data;
var randomProduct=Math.round(Math.random()*($scope.products.length-1))
$scope.currentProduct=angular.copy($scope.products[randomProduct]);
$scope.currentProduct.image=$scope.checkhttp();
})
.error(函数(数据、状态、标题、配置){
$ionicLoading.hide();
$scope.errorMessage=“无法加载事件列表,错误#”+状态;
var alertPopup=$ionicPopup.confirm({
标题:“无法加载事件列表,错误#0”,
模板:“”,
按钮:[
{文本:'确定'},
{
文本:“重试”,
键入:'按钮正',
onTap:功能(e){
控制台日志(“Reessayer”);
//重试loadEvents()
返回false;
}}]
});
log($scope.errorMessage);
});
}
$scope.loadEvents();
我编辑:如果用户单击OK,则返回true;如果单击retry,则返回false
然后,检查承诺并据此采取行动
.error(function (data, status, headers, config) {
$ionicLoading.hide();
$scope.errorMessage = "Couldn't load the list of events, error # " + status;
var alertPopup = $ionicPopup.confirm({
title: $scope.errorMessage,
template: '',
buttons: [
{text: 'OK',
onTap: function(e) {
return true;
}
},
{
text: '<b>Retry</b>',
type: 'button-positive',
onTap: function(e) {
console.log("Reessayer");
return false;
}}]
});
alertPopup.then(function(res) {
if(!res)
$scope.loadEvents();
else {
console.log("stop");
}
});
console.log($scope.errorMessage);
});
}
$scope.loadEvents();
.error(函数(数据、状态、标题、配置){
$ionicLoading.hide();
$scope.errorMessage=“无法加载事件列表,错误#”+状态;
var alertPopup=$ionicPopup.confirm({
标题:$scope.errorMessage,
模板:“”,
按钮:[
{文本:'确定',
onTap:功能(e){
返回true;
}
},
{
文本:“重试”,
键入:'按钮正',
onTap:功能(e){
控制台日志(“Reessayer”);
返回false;
}}]
});
alertPopup.then(功能(res){
如果(!res)
$scope.loadEvents();
否则{
控制台日志(“停止”);
}
});
log($scope.errorMessage);
});
}
$scope.loadEvents();
只需将http调用提取到函数变量中