Дочерний компонент не загружается после добавления CUSTOM_ELEMENTS_SCHEMA в модуль приложения
У меня есть компонент с именем HostComponent, когда я помещаю этот компонент в качестве запускающего компонента, все работает, и мое приложение работает нормально.
Затем я создаю еще один модуль под названием AppModule и оборачиваю хост-компонент внутри компонента приложения.
import { Component, Input } from '@angular/core';
@Component({
selector: 'main-app',
template: '<ds-framework-host >Loading...</ds-framework-host>'
})
export class AppComponent {
constructor(){
}
}
AppModule
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
,HostModule
],
schemas:[],
bootstrap: [AppComponent],
entryComponents: [
SomeOtherEntryComponentsHere
]
})
export class AppModule {
}
Index.html
<body>
<main-app></main-app>
</body>
Хост-модуль (где Хост-компонент существует)
@NgModule({
declarations: [
HostComponent
],
imports: [
BrowserModule,
FormsModule,
DashboardModule,
],
schemas:[CUSTOM_ELEMENTS_SCHEMA],
exports:[]
})
export class HostModule {
}
Когда я пытаюсь запустить приложение, я получаю сообщение об ошибке ниже
Чтобы устранить эту ошибку, я добавил CUSTOM_ELEMENTS_SCHEMA в модуль приложения на основе приведенной ниже ссылки. CUSTOM_ELEMENTS_SCHEMA добавлен в NgModule.schemas все еще показывает ошибку
Моя ошибка проходит, но мой <ds-framework-host>
показывает загрузку.. но внутри этого дочернего компонента ничего не выполняется. В инструментах разработчика нет ошибок
Угловая версия - 4.0.0.0
Как я могу устранить эту ошибку и почему это происходит?
3 ответа
Я исправил проблему с экспортом HostComponent в хост-модуле. Поскольку этот компонент является другим модулем для использования в модуле приложения, мы должны экспортировать.
@NgModule({
declarations: [
HostComponent
],
imports: [
BrowserModule,
FormsModule,
DashboardModule,
],
schemas:[CUSTOM_ELEMENTS_SCHEMA],
exports:[HostComponent]
})
export class HostModule {
}
У вас нет компонента ds-framework-host в вашем массиве объявлений в вашем app.module. Вы должны использовать CUSTOM_ELEMENTS_SCHEMA, только если ds-framework-host является собственным настраиваемым элементом
К сожалению, не было достаточно информации о том, что именно ваш "HostComponent". Все, что вам нужно было сделать, это добавить HostComponent к объявлениям в вашем AppModule для использования в AppComponent.
@NgModule({
declarations: [
AppComponent,
HostComponent
],
imports: [
BrowserModule,
FormsModule
.
.
.
],
bootstrap: [AppComponent],
entryComponents: [
SomeOtherEntryComponentsHere
]
})
export class AppModule {}