Angularjs 从函数调用函数

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

我有这个函数,它加载一个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,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调用提取到函数变量中