Для использования одного компонента в двух разных модулях в Angular, необходимо выполнить следующие шаги.
- Создайте компонент, который вы хотите использовать в двух модулях. Допустим, это компонент с именем
MyComponent
.
import { Component } from '@angular/core'; @Component({ selector: 'app-my-component', template: `<h1>My Component</h1>` }) export class MyComponent { // ... код компонента }
- Определите
exports
вNgModule
декораторе этого компонента в модуле, где он был создан (допустим, в модуле с именемMyModule
).
import { NgModule } from '@angular/core'; import { MyComponent } from './my.component'; @NgModule({ declarations: [ MyComponent ], exports: [ MyComponent // экспортируем компонент в другие модули ] }) export class MyModule { // ... код модуля }
- Импортируйте
MyModule
в другие модули, где вы хотите использоватьMyComponent
. Например, импортируем его в модуле с именемAppModule
.
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { MyModule } from './my.module'; @NgModule({ imports: [ BrowserModule, MyModule // импортируем MyModule ] }) export class AppModule { // ... код модуля }
- Теперь компонент
MyComponent
доступен для использования в шаблонах других компонентов в модулеAppModule
.
import { Component } from '@angular/core'; @Component({ selector: 'app-root', template: ` <h1>App Component</h1> <app-my-component></app-my-component> <!-- используем MyComponent --> ` }) export class AppComponent { // ... код компонента }
- После этих шагов, если вы запустите приложение, то вы увидите, что компонент
MyComponent
будет отображаться в шаблоне компонентаAppComponent
.
Итак, вы использовали один компонент MyComponent
в двух разных модулях MyModule
и AppModule
, просто импортировав MyModule
в AppModule
. Это даст вам возможность использовать MyComponent
повторно и избегать дублирования кода.