问题
I'm using Angular with lazy loading modules. Each component has its own module. If I import a module in the root module (app.module) it must work fine. For example, I imported HttpClientModule
in app.module and can use it in child components.
But about FormsModule
, this doesn't work fine. I must import it in the child module, otherwise, I get the following errors:
Can't bind to 'ngModel' since it isn't a known property of 'input'. ("
Do you have any idea why this happens?
回答1:
I found the answer here:
- if the module is imported for components, you’ll need to import it in each module needing them,
- if the module is imported for services, you’ll need to import it only once, in the first app module.
回答2:
create the SharedModule
@NgModule({
imports: [
CommonModule,
FormsModule,
],
declarations: [
],
exports: [
CommonModule,
FormsModule,
]
})
export class SharedModule {
}
and add this to app.module.ts
imports: [ SharedModule.forRoot(),
// Core Module
CoreModule.forRoot()]
来源:https://stackoverflow.com/questions/54957210/angular-importing-formsmodule-in-app-module-vs-child-module