Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Обработка ajax ошибок (https://javascript.ru/forum/angular/47223-obrabotka-ajax-oshibok.html)

Tek 14.05.2014 16:58

Обработка ajax ошибок
 
Подскажите где должна происходить обработка ajax ошибок. В данный момент
app.config(['$httpProvider', function ($httpProvider) {
    $httpProvider.responseInterceptors.push(function($q, $window, $rootScope, $location) {
        return function(promise) {
            return promise.then(function(response) {
                return response;
            }, function(response) {
                $rootScope.$broadcast('error', response.statusText,"Try to refresh the page or try later");
                return $q.reject(response);
            });
        }
    });
}]);

Ошибки отображаются визуально через сервис+дерективу, но так как в config нельзя inject ить свои модули приходиться слушать rootScope в контроллере.
Подскажите как лучше организовать обработку ошибок?

nerv_ 14.05.2014 17:26

Цитата:

Сообщение от Tek
но так как в config нельзя inject ить свои модули

вроде можно http://djds4rce.wordpress.com/2013/0...-interceptors/, https://docs.angularjs.org/api/ng/se...p#interceptors

Tek 15.05.2014 11:07

Спасибо за ответ, свои модули в config inject ить все же нельзя, но через $httpProvider.responseInterceptors.push можно отдать сервису, внутри которого можно делать все что угодно...

nerv_ 15.05.2014 12:57

Цитата:

Сообщение от Tek
Спасибо за ответ, свои модули в config inject ить все же нельзя

Насколько помню можно. Только не модули а сервисы. А если уж быть совсем точным, то их провайдеры ибо конфиг.

Tek 15.05.2014 13:28

Цитата:

Сообщение от nerv_ (Сообщение 311929)
Насколько помню можно. Только не модули а сервисы. А если уж быть совсем точным, то их провайдеры ибо конфиг.

Может быть я что то не так делаю.. но у меня не получаеться :(
http://codepen.io/Tek/pen/DicKF

nerv_ 15.05.2014 14:10

http://codepen.io/anon/pen/fcpnv

Понимание типов сервисов в AngularJS (constant, value, factory, service, provider)


Часовой пояс GMT +3, время: 19:19.