Итак ... Я пытаюсь узнать некоторые угловые вещи, а затем я достиг точки, где я застрял. В моем приложении я использую сторонние API, поэтому я не могу положиться на $http
, поэтому в коде вы увидите $apply
.
Так, в принципе у меня есть это:
.when('/dashboard',{
controller : 'DashboardController',
templateUrl : 'ui/modules/dashboard/dashboard.html',
resolve : {
data : function(myService){
return myService.start();
}
}
})
До сих пор ничего действительно странно. У этого метода есть обещание, верно? Функция запуска следующая:
var start = function(){
return initializeConnection().then(function(){
return login(false);
});
};
Итак, в принципе, если все работает, все работает. Замечательно. Дело в том, что если я получу обетование от второй функции (это login
), я не могу уловить ошибку в этом, это мой AppController
, который создается поверх приложения (так оно всегда создается):
$rootScope.$on("$routeChangeError", function (event, previous, current, rejection) {
console.log('Failing');
});
Это в основном никогда не называлось. Решение, с которым я пытался это сделать, заключается в том, чтобы вернуть обещание от функции start, а затем, если какая-либо из этих асинхронных функций завершится неудачно, не получится обещанное обещание. Но, как я вижу, это должно быть ненужным.
Можете ли вы указать мне правильное направление?
Привет, я забыл упомянуть об этом ... У меня уже есть этот код в AppController. Вопрос о обновлении –
Привет Антонио, я исследовал его дальше и попытался воспроизвести проблему, с которой вы столкнулись. Пожалуйста, взгляните на это [ссылка] (http://stackoverflow.com/a/18661324/1310945). Он имеет 2 вложенных обещания, и если какое-либо из этих обещаний не удается, контроллеры все еще обрабатывают его. –