加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular 2 – 将AuthModule的Auth服务导出到AppModule

发布时间:2020-12-17 08:20:54 所属栏目:安全 来源:网络整理
导读:我决定将LoginComponent,AuthService,LoggedInGuard放在一个名为AuthModule的模块中: import { NgModule } from '@angular/core';import { CommonModule } from '@angular/common';import { AuthComponent } from './auth.component';import { LoginCompone
我决定将LoginComponent,AuthService,LoggedInGuard放在一个名为AuthModule的模块中:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AuthComponent } from './auth.component';
import { LoginComponent } from './components/login/login.component';

import { AuthService } from './services/auth/auth.service';
import { StorageService } from './services/storage/storage.service';
import { RequestService } from './services/request/request.service';

import { LoggedInGuard } from './guards/logged-in.guard';

@NgModule({
  imports: [
    CommonModule
  ],providers: [AuthService,LoggedInGuard],declarations: [AuthComponent,LoginComponent],exports: [AuthService,LoggedInGuard]
})
export class AuthModule { }

我想在Application的其余部分中仅使用AuthService方法.并且LoggedInGuard保护非公共路线.

所以我尝试在AppModule中导入它们:

import { AuthModule } from './core/auth/auth.module';

@NgModule({
  declarations: [AppComponent,HomeComponent],imports: [
    BrowserModule,FormsModule,ReactiveFormsModule,HttpModule,AuthModule,RouterModule.forRoot(routes)
  ],providers: [],bootstrap: [AppComponent]
})
export class AppModule { }

但在app.routes.ts中,LoggedInGuard不适用于以下代码行:

import { LoggedInGuard } from './core/auth/auth.module';

它没有编译,它说:

…auth/auth.module has no exported member ‘LoggedInGuard’

如果我把它指向正确的位置:

import { LoggedInGuard } from './core/auth/guards/logged-in.guard';

它编译,但显示以下运行时错误:

Unexpected value ‘AuthService’ exported by the module ‘AuthModule’

你有什么建议我吗?

提前致谢.

出口不是为了服务.将服务添加到提供商就足够了.因此,从导出中删除AuthService和AuthGuard.

导出的目的是使组件,管道,指令和其他模块可访问的其他模块.因此,您需要添加AuthComponent和LoginComponent,以便能够在其他模块中使用它们.

@NgModule({
  imports: [
    CommonModule
  ],exports: [AuthComponent,LoginComponent]
})
export class AuthModule { }

另请注意,将AuthModule导入AppModule只会使组件可用于AppModule中声明的其他组件.任何其他想要使用这些组件的模块都应该导入AuthModule.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读