Je souhaite gérer uniformément les codes d'erreur de requête $http d'Angular (par exemple, lorsque l'utilisateur n'est pas connecté, accédez à la page de connexion)
Les cas sur Internet concernant l'intercepteur $httpProvider sont tous configurés dans un module.config spécifique (s'il y a plusieurs modules dans le projet, ne faut-il pas les configurer un par un ?)
Actuellement, la structure du code de mon projet est qu'un fichier JS définit un module, et le module principal dépend de ces sous-modules. Vous voulez savoir comment configurer le traitement d’interception de code d’erreur $http sur tous les modules ?
//依赖的业务模块
var SERVICE_DEPENDENCIES = ['module1','module2'];
//依赖的公共组件模块
var COMMON_DEPENDENCIES = ['ui.router','ngCookies','ngAnimate','toastr'];
//声明主模块:并合并和引入相关模块
var mainApp = angular.module('mainApp', COMMON_DEPENDENCIES.concat(SERVICE_DEPENDENCIES));
//主模块配置
mainApp.config(['$httpProvider',function($httpProvider){
//为http添加过滤器
$httpProvider.interceptors.push('myHttpInterceptor');
}]);
//过滤器定义
mainApp.factory('myHttpInterceptor',function($q){
return {
'response' : function(_response){
if(_response.data.errorCode == 1){
console.info("myHttpInterceptor response:" + JSON.stringify(_response));
}
return _response;
}
}
});
Les filtres définis en mainApp
ne sont pas applicables aux sous-modules module1 et module2. Comment le configurer dans tous les modules ?
Merci pour l'invitation.
Il est donc clair que le
$httpProvider
défini par lemainApp
principal est également applicable aux autres sous-modules dont vous dépendez.mainApp
定义的$httpProvider
对你所依赖的其他子模块下同样适用。你的代码看起来没有什么任何问题,但我们项目中的确是不同模块中是相适用主模块的。唯一不同的好像在模块名上面。
像我们模块名都是这样的命名规则:
主模块
ent
。业务模块
Il ne semble pas y avoir de problème avec votre code, mais dans notre projet, il est vrai que différents modules utilisent le même module principal. La seule différence semble être le nom du module.ent.user
ent
. 🎜🎜ent.user
. 🎜🎜 🎜 🎜De même, je ne sais pas si c'est la raison ! 🎜