繁体   English   中英

如何仅为子模块导入Angular HTTP拦截器

How to import Angular HTTP interceptor only for Child module

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我已经在AppModule中导入了HttpClientModule。

import { HttpClientModule } from '@angular/common/http';

export const AppRoutes: Routes = [
  { path: '', redirectTo: 'dashboard', pathMatch: 'full' },
  {
    path: 'account',
    loadChildren: './auth/auth.module#AuthModule'
  },
  {
    path: 'dashboard',
    loadChildren: './content/content.module#ContentModule'
  }
];

启动网站后,它将重定向到我添加了HTTP拦截器的仪表板模块(延迟加载的模块)。

import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { HttpInterceptorService } from '../services/http-interceptor.service';
@NgModule({
providers : [
      { provide: HTTP_INTERCEPTORS, useClass: HttpInterceptorService, multi: true }
    ]
})

但这不起作用。 谁能帮我?

1 个回复

Http拦截器只是一项服务,在任何模块上注入都不会有任何区别-只需在AppModule中做同样的AppModule ,这将有助于您工作-如果遇到相同的问题,可以尝试像下面在共享库中注入模

实现此目标的常见模式不是直接在@NgModule声明上公开提供程序,而是在如下所示的静态forRoot函数中:

export class SharedModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: SharedModule,
      providers: [
         { provide: HTTP_INTERCEPTORS, useClass: HttpInterceptorService, multi: true }
      ]
    };
  }
}

然后,您可以导入您的SharedModuleAppModuleSharedModule.forRoot()

希望这有效-编码愉快

1 Angular2 Http拦截器在子模块中不起作用

所以我创建了一个 angular2 模块来处理 HTTP 拦截,使用一个基本的拦截器,如下所示: 这将向 http 请求添加授权标头,并在从服务器发送新标头时更新其自己的标头。 它的进口和提供通常是这样的: 所以auth angular2 模块被编译并导入到我的app.module.t 中, ...

4 如何仅在 angular 中为礼品卡模块添加提供者、服务和拦截器?

我只为礼品卡模块实现缓存,我已经创建了 http-cache.service 和缓存拦截器。当我在 app.module.ts 中添加服务时,它可以工作,但我只需要为礼品卡单独实现。当我单独执行时对于礼品卡,它不起作用。这是我的代码 礼品卡-routing.module.ts 礼品卡.modul ...

5 Angular 2.0-如何导入子模块?

我一直在关注AngularJs 2.0教程,而我一直在尝试导入子组件。 我一般对角度不熟悉,所以这可能是一个非常业余的错误。 我有这个模块,直到添加了NavigationComponent指令和参考为止,该模块一直在工作: 我有这样定义的NavigationComponent: ...

6 如何以角度将拦截器范围限定到模块?

以下是用于替换身份验证令牌的 angular 拦截器。 我的应用程序是这样的结构: 身份验证令牌仅在登录后可用。 我正在为主模块设置拦截器(即在主模块中提供) (配置文件是用户登录后登陆并根据收到的令牌发送请求的地方) 但这里的问题是拦截器在到达模块之前没有被调用。 因此,当配置文件组件 ...

2020-10-16 19:19:33 1 289   angular
7 如何使用 http 拦截器延迟加载/编译模块

我为我的应用程序制作了一个调试模块。 我有一个具有生产标志的外部配置 json 文件,例如 我想要做的是,当应用程序加载时,它会读取配置文件和延迟加载(或编译,因为这不会被路由器事件触发)然后模块会做各种事情。 问题是我不想在我的AppModule声明DebugModule.forRoot() ...

9 如何有选择地禁用Angular HTTP拦截器

我有一个HTTP拦截器,它对活动请求进行计数(对于请求为+1,对于requestError,响应和responseError为-1)。 参考计数值用于显示/隐藏加载叠加。 如何为某些请求禁用此拦截器? 例如,在加载组件之后,我希望预加载一些数据以预期用户的下一步操作,并且我不想显示加载叠加 ...

10 如何在角度HTTP拦截器中获取绝对URL?

在我们的应用程序中,对于每个请求,前端都会对url +数据进行哈希处理,然后将其发送到服务器。 然后,服务器验证查询参数以及数据是否未被篡改。 但是,在httpinterceptor中,我只能查看config.url和config.params。 无法获取绝对网址,因此我无法直接对其进行哈 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM