Я пытаюсь показать ионный загрузчик, пока мои данные не будут получены, но как-то его загрузка навсегда. Я проверил некоторые решения, но не работал. Это мой код.
$ ionicLoading.show({content: 'Loading', анимация: 'fade-in', showBackdrop: true, 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);
Он работает нормально, но я хочу показать загрузку, прежде чем она появится на экране. В чем может быть проблема?
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() в начало этих обратных вызовов.
Или вы можете проверить, что window.console существует до вызова console.log(), как показано здесь:
$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));
})
var q = $q.defer(); /* do your course lookup callback */ q.resolve(); /* ... */ return q.promise;