У меня есть следующие контроллеры, которые все службы 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; });
}).....
Теперь мне нужно добавить обработку ошибок (например, отобразить окно предупреждения) для ситуаций с ошибками, например, отсутствие сети, веб-службы и т.д. Как добавить код для обработки ошибок?
Вы можете использовать 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
напрямую.
angular.module('app', ['ionic', 'app.controllers', 'app.routes', 'app.services', 'app.directives']) .run(function ($ionicPlatform, $ionicPopup) { $ionicPlatform.ready(function () { ..../* insert here? */ .... }
?
angular.module('app', ['ionic', 'app.controllers', 'app.routes', 'app.services', 'app.directives']).run(...).config(...
then
является обратный вызов ошибки! это то, что вы имели ввиду ?Get
?