angular.js - Bagaimana untuk mengkonfigurasi Pemintas Angular ke dalam semua modul projek?
为情所困
为情所困 2017-05-15 17:13:04
0
1
635
  • 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?

为情所困
为情所困

membalas semua(1)
黄舟

Terima kasih atas jemputan.

Jadi boleh dijelaskan dengan jelas bahawa $httpProvider yang ditakrifkan oleh mainApp utama juga boleh digunakan pada submodul lain yang anda bergantung padanya. mainApp 定义的 $httpProvider 对你所依赖的其他子模块下同样适用

你的代码看起来没有什么任何问题,但我们项目中的确是不同模块中是相适用主模块的。唯一不同的好像在模块名上面。

像我们模块名都是这样的命名规则:

  • 主模块 ent

  • 业务模块 ent.user

    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.
Nama modul kami semuanya mengikut peraturan penamaan ini:

  • Modul utama en. 🎜🎜
  • 🎜Modul perniagaan ent.user. 🎜🎜 🎜 🎜Sama seperti ini, saya tidak pasti sama ada ini sebabnya! 🎜
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan