Вы должны использовать общий модуль. Создание общих модулей позволяет организовать ваш код. Вы можете поместить часто используемые компоненты, директивы и каналы в один модуль, а затем импортировать только тот модуль, где он вам нужен, в другие части вашего приложения.
Общий модуль:
- импортирует CommonModule, потому что компонент модуля нуждается в общих директивах.
- объявляет и экспортирует SharedComponent, SharedDirective и SharedPipe.
- повторно экспортирует CommonModule и FormsModule, так что любой другой модуль, который импортирует этот SharedModule, получает доступ к директивам, таким как NgIf из CommonModule, и может связываться с директивой [(ngModel)] из FormsModule.
ПРИМЕЧАНИЕ. Несмотря на то, что SharedModule может не потребоваться импортировать FormsModule, SharedModule по-прежнему может экспортировать FormsModule, не внося его в список своих импортов. Таким образом, вы можете предоставить другим модулям доступ к FormsModule без необходимости импортировать его непосредственно в любой другой модуль вашего приложения.
Рассмотрим следующий модуль из воображаемого приложения:
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { SharedComponent } from './shared.component';//just an example
import { SharedDirective } from './shared.directive';
import { SharedPipe } from './shared.pipe';
@NgModule({
imports: [ CommonModule ],
declarations: [ SharedComponent , SharedDirective , SharedPipe ],
exports: [ SharedComponent , SharedDirective , SharedPipe ,
CommonModule, FormsModule ]
})
export class SharedModule { }
Затем импортируйте ваш общий модуль в модуль, которому нужны общие компоненты:
@NgModule({
imports: [
SharedModule
],
declarations: [
//your declared modules
]
})
export class ConsumerOfSharedComponentsModule { }