Saya mahu mengendalikan kod ralat permintaan $http Angular secara seragam (contohnya, apabila pengguna tidak log masuk, lompat ke halaman log masuk)
Kes di Internet tentang $httpProvider pemintas semuanya dikonfigurasikan dalam modul.config tertentu (jika terdapat banyak modul dalam projek, tidakkah anda perlu mengkonfigurasinya satu persatu?)
Pada masa ini, struktur kod projek saya ialah fail JS mentakrifkan modul, dan modul utama bergantung pada sub-modul ini. Ingin tahu cara mengkonfigurasi pemprosesan pemintasan kod ralat $http kepada semua modul?
//依赖的业务模块
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;
}
}
});
Penapis yang ditakrifkan dalam mainApp
tidak boleh digunakan pada sub-modul modul1 dan modul2. Bagaimana untuk mengkonfigurasinya dalam semua modul?
Terima kasih atas jemputan.
Jadi boleh dijelaskan dengan jelas bahawa
$httpProvider
yang ditakrifkan olehmainApp
utama juga boleh digunakan pada submodul lain yang anda bergantung padanya.mainApp
定义的$httpProvider
对你所依赖的其他子模块下同样适用。你的代码看起来没有什么任何问题,但我们项目中的确是不同模块中是相适用主模块的。唯一不同的好像在模块名上面。
像我们模块名都是这样的命名规则:
主模块
ent
。业务模块
Nampaknya tiada masalah dengan kod anda, tetapi dalam projek kami adalah benar bahawa modul yang berbeza menggunakan modul utama yang sama. Satu-satunya perbezaan nampaknya ialah nama modul.ent.user
ent.user
. 🎜🎜 🎜 🎜Sama seperti ini, saya tidak pasti sama ada ini sebabnya! 🎜