ngResource $ Обработка ошибок обещания?

0

У меня есть следующие контроллеры, которые все службы ngResource получают для получения данных.

.controller('venueCtrl', function ($scope, $stateParams, VenueService) {
    $scope.venue = VenueService.get({ id: $stateParams.id });
})
.controller('tomorrowCtrl', function ($scope, EventService) {
    var evts = EventService.query({ period: "Tomorrow" });
    evts.$promise.then(function (response) { $scope.events = response; });
}).....

Теперь мне нужно добавить обработку ошибок (например, отобразить окно предупреждения) для ситуаций с ошибками, например, отсутствие сети, веб-службы и т.д. Как добавить код для обработки ошибок?

  • 0
    Вторым параметром функции then является обратный вызов ошибки! это то, что вы имели ввиду ?
  • 0
    Как насчет первого Get ?
Показать ещё 5 комментариев
Теги:
ionic-framework
angular-promise

1 ответ

1

Вы можете использовать Interceptors таким образом:

angular.module('ngRessourceErrorsHandler', [])
.config(function($resourceProvider) {
    angular.forEach($resourceProvider.defaults.actions, function(action) {
        action['interceptor'] = {
            responseError: function(httpResponse) {
                //Do whatever you want here !
            }
        };
    })
});

Пожалуйста, попробуйте это и сообщите мне, если это сработает для вас. Не забудьте добавить зависимость ngRessourceErrorsHandler к вашему модулю или просто использовать config напрямую.

  • 0
    Могу ли я просто добавить установочный код Interceptors в angular.module('app', ['ionic', 'app.controllers', 'app.routes', 'app.services', 'app.directives']) .run(function ($ionicPlatform, $ionicPopup) { $ionicPlatform.ready(function () { ..../* insert here? */ .... } ?
  • 0
    Да, конечно, вы можете;) angular.module('app', ['ionic', 'app.controllers', 'app.routes', 'app.services', 'app.directives']).run(...).config(...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню