延迟加载 angular 2 个模块
lazy loading angular 2 module
我有一个包含 3 个模块的 angular 2 项目。
AppModule、共享模块和延迟加载模块。我希望这两个模块(延迟加载和应用程序)都导入共享模块,以便它们都可以使用共享模块提供的管道等。这可能吗?
我试过了,但我收到错误消息,告诉我共享模块已经加载。并且仅将其加载到 AppModule 中,但延迟加载的模块无法访问提供的元素。
我是否误解了 angular 模块?
是的,您可以将共享 NgModule 用于惰性和 non-lazy 模块
app/shared/shared.module.ts
import { NgModule } from '@angular/core';
import { MustSharedService } from './must-shared.service';
@NgModule({
providers: [MustSharedService]
})
export class SharedModule {}
app/app.module.ts
import { SharedModule } from './shared/shared.module';
@NgModule({
imports: [
SharedModule,
...
],
})
export class AppModule {}
app/lazy/lazy.module.ts
import { SharedModule } from '../shared/shared.module';
@NgModule({
imports: [
SharedModule,
...
],
})
export class LazyModule {}
例如,您在 SharedModule 中提供的任何服务都将在两个模块中可用。
我有一个包含 3 个模块的 angular 2 项目。 AppModule、共享模块和延迟加载模块。我希望这两个模块(延迟加载和应用程序)都导入共享模块,以便它们都可以使用共享模块提供的管道等。这可能吗?
我试过了,但我收到错误消息,告诉我共享模块已经加载。并且仅将其加载到 AppModule 中,但延迟加载的模块无法访问提供的元素。
我是否误解了 angular 模块?
是的,您可以将共享 NgModule 用于惰性和 non-lazy 模块
app/shared/shared.module.ts
import { NgModule } from '@angular/core';
import { MustSharedService } from './must-shared.service';
@NgModule({
providers: [MustSharedService]
})
export class SharedModule {}
app/app.module.ts
import { SharedModule } from './shared/shared.module';
@NgModule({
imports: [
SharedModule,
...
],
})
export class AppModule {}
app/lazy/lazy.module.ts
import { SharedModule } from '../shared/shared.module';
@NgModule({
imports: [
SharedModule,
...
],
})
export class LazyModule {}
例如,您在 SharedModule 中提供的任何服务都将在两个模块中可用。