Для того что бы сделать не зависимые компоненты и использовать их различных местах.
Используется выше приведенная структура проекта.
В компоненте home мы хотим использовать admin-panel или что то другое.
Для этого необходимо:
1. Экспортировать созданный компонент admin-panel в модуле.
import { NgModule } from "@angular/core";
import { MaterialModule } from "@angular/material";
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AdminPanelComponent } from "./admin-panel.component";
import { UserListModule } from "./user/user-list.module";
@NgModule({
imports: [BrowserAnimationsModule
,MaterialModule
, UserListModule
],
declarations: [AdminPanelComponent],
bootstrap: [AdminPanelComponent],
exports: [
AdminPanelComponent
],
})
export class AdminPanelModule {}
2. Импортировать компонент AdminPanelModule в
home.module.ts
import { NgModule } from "@angular/core";
import { HomeComponent } from "./home.component";
import { routing } from "../app.routes";
import { HomeGuard } from "./home.guard";
import { MaterialModule } from "@angular/material";
import { AdminPanelModule } from "../admin-panel/admin-panel.module";
@NgModule({
imports: [ routing
, MaterialModule
, AdminPanelModule
],
declarations: [HomeComponent],
bootstrap: [HomeComponent],
providers: [HomeGuard]
})
export class HomeModule { }
3. Добавить в разметку home.html
...........
<div>
<label>{{hello}}</label>
</div>
</md-toolbar>
<admin-panel></admin-panel>
Если не сделать описанные выше шаги возможна ошибка :
If 'admin-panel' is an Angular component, then verify that it is part of this module. 2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.