延迟加载角度2模块

时间:2017-02-05 16:38:48

标签: angular module loading lazy-evaluation

我有一个带有3个模块的角度2项目。 AppModule,共享模块和延迟加载的模块。我想要两个模块(延迟加载和App)导入共享模块,以便它们都可以使用共享模块提供的管道等。这可能吗?

我试过,但是我收到错误告诉我共享模块已经加载了。并且仅在AppModule中加载它,但延迟加载的模块无法访问提供的元素。

我是否误解了角度模块?

1 个答案:

答案 0 :(得分:1)

是的,你可以使用共享NgModule来处理惰性模块和非延迟模块

应用/共享/ shared.module.ts

import { NgModule } from '@angular/core';
import { MustSharedService } from './must-shared.service';

@NgModule({
  providers: [MustSharedService]
})
export class SharedModule {}

应用/ app.module.ts

import { SharedModule } from './shared/shared.module';

@NgModule({
  imports: [
    SharedModule,
    ...
  ],
})
export class AppModule {}

应用/懒惰/ lazy.module.ts

import { SharedModule } from '../shared/shared.module';

@NgModule({
  imports: [
    SharedModule,
    ...
  ],
})
export class LazyModule {}

从那里开始的任何服务,例如,您在SharedModule中提供的服务都将在2 Module中提供。

请参阅此演示https://plnkr.co/edit/L2ypUQZiltSPXnLlxBoa?p=preview