Дочерний компонент не загружается после добавления 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 {}
Другие вопросы по тегам