Я получаю ошибку ниже, когда пытаюсь использовать перехватчик в AngularJs, Requirejs с ui-router. Если я использую с $ routeProvider (ngRoute), работа совершенна.Не удалось создать экземпляр модуля httpProvider.responseInterceptors
Что не так с кодом?
спасибо.
Не удалось создать экземпляр модуля devWeb из-за: TypeError: Не удается прочитать свойство 'толчок' неопределенной на ResponseInterceptor
кода сделать перехват.
(function() {
"use strict";
define(
function() {
var ResponseInterceptor = function ($httpProvider) {
var globalResponseInterceptor = function (promise) {
var onSuccess = function (packet) {
if(angular.isString(packet.data)) {
return packet;
}
return packet;
};
var onFault = function (fault) {
var error = angular.isDefined(fault.error) ? fault.error :
angular.isDefined(fault.status) ? {
code: fault.status,
message: "Unexpected Server Error"
} : {
code: "404",
message: "Not Found"
};
return $$q.reject(error) ;
};
return promise.then(onSuccess, onFault);
};
var registerInterceptor = function (sessao, $rootScope ,$q) {
$$q = $q;
$scope = $rootScope;
errorModel = sessao.error;
return globalResponseInterceptor;
};
$httpProvider.responseInterceptors.push([ "sessao", "$rootScope", "$q", registerInterceptor ]);
};
return [ "$httpProvider", ResponseInterceptor ];
});
}());
Код для создания экземпляра.
define([...],
function (RouteManagerServico, ResponseInterceptor) {
var app, appName = 'devWeb';
app = angular
.module(appName, [ "ngCookies", "ui.router", "ngRoute", "ngSanitize"])
.config(RouteManagerServico)
.config(ResponseInterceptor)
.run([ "$rootScope", "$state", "$location", function($rootScope, $state, $location) {
$rootScope.$state = $state;
$rootScope.$location = $location;
}]);
angular.bootstrap(document.getElementsByTagName("body")[0], [ appName ]);
return app;
}
);
Проблема заключается в версии 1.2 Угловое до 1,3. Перед httpProvider.responseInterceptors теперь $ httpProvider.interceptors. link docs.angularjs.org/guide/migration – alexander