我想你是用另一种方式做的。
对于共享模块,您必须使用modulewithproviders,在共享指令和服务的模块中,然后使用forroot指令将该模块导入到应用程序模块中。
您可以使用以下示例。
共享模块
import { NgModule, ModuleWithProviders } from '@angular/core';
@NgModule({
declarations: [
Pipes, Directives
],
exports: [
Pipes, Directives
]
})
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [ SomeService ]
};
}
}
现在在应用程序模块中导入共享模块。
应用程序模块
import { SharedModule } from './shared/shared.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
SharedModule.forRoot()
],
bootstrap: [
AppComponent
]
})
export class AppModule {}
您也可以在任何模块中导入该共享模块,而不使用forroot()。
其他模块
import { SharedModule } from '../shared/shared.module';
// ...
@NgModule({
imports: [
CommonModule,
SharedModule
],
declarations: [
// ...
]
})
export class SomeFeatureModule {}