$ ionicLoading永远加载

时间:2016-07-20 20:22:42

标签: angularjs ionic-framework

我正在尝试显示离子加载器,直到我的数据被收到但不知何故它的加载永远。我检查了一些解决方案,但没有奏效。这是我的代码。

$ ionicLoading.show({             内容:'正在加载',             动画:'淡入',             showBackdrop:是的,             maxWidth:200,             showDelay:0         });

    $scope.allcourses = CourseFactory.FindFreeCourses($scope.search).then(function(result){
        console.log(result);
        $scope.allfreestadiums = result;
        $ionicLoading.hide();
    }, function(error){
        console.log(error);
        $ionicLoading.hide();
        $ionicLoading.show({
            template: 'Network Error',
            scope: $scope
        });
        $timeout(function() {
            $ionicLoading.hide();
        }, 100);
    })

当我只打电话时

$ scope.allcourses = CourseFactory.FindFreeCourses($ scope.search);

它工作正常,但我希望在屏幕上显示之前显示加载。 可能是什么问题?

1 个答案:

答案 0 :(得分:1)

console.log()在设备/模拟器上的行为可能与在浏览器上的行为不同。虽然浏览器通常会将任何对象作为参数接受,例如console.log(obj),但这在设备上存在问题。您可能想尝试这样做: console.log("some message", JSON.stringify(obj))

$ionicLoading.show({ content: 'Loading', animation: 'fade-in', showBackdrop: true, maxWidth: 200, showDelay: 0 });

$scope.allcourses = CourseFactory.FindFreeCourses($scope.search).then(function(result){
  $ionicLoading.hide();
  $scope.allfreestadiums = result;
  console.log("success", JSON.stringify(result));
}, function(error){
  $ionicLoading.hide();
  console.log("error", JSON.stringify(error));
})

console.log()函数也可能失败,因为调用时未定义控制台。这取决于您的测试方式以及环境是否默认公开控制台变量。它有点像薛定谔方案 - 打开开发控制台的行为会使问题消失,因为在某些浏览器上执行此操作时会定义控制台变量。尝试注释掉console.log()调用并将$ ionicLoading.hide()移到这些回调的顶部。

或者您可以在调用console.log()之前检查window.console是否存在,如下所示:

$ionicLoading.show({ content: 'Loading', animation: 'fade-in', showBackdrop: true, maxWidth: 200, showDelay: 0 });

$scope.allcourses = CourseFactory.FindFreeCourses($scope.search).then(function(result){
  $ionicLoading.hide();
  window.console && console.log("success", JSON.stringify(result));
  $scope.allfreestadiums = result;
}, function(error){
  $ionicLoading.hide();
  window.console && console.log("error", JSON.stringify(error));
})