Я реализовывал динамические компоненты для одного из моих проектов. Концепция динамических компонентов заключается в том, что они попадают в память по мере необходимости и не имеют ссылок ни в одном шаблоне.
Согласно официальной документации, мы объявляем такие компоненты в entryComponents
, чтобы предотвратить их отбрасывание в сотрясение дерева, так как у них нет ссылки на шаблон.
Ниже приведен app.module.ts
, где я объявил два своих динамических компонента SlideOneComponent
и SlideTwoComponent
в массиве entryComponents
:
@NgModule({
declarations: [
AppComponent,
ButtonComponent,
AdDirective
],
imports: [
BrowserModule
],
providers: [],
entryComponents: [
SlideOneComponent,
SlideTwoComponent,
],
bootstrap: [AppComponent]
})
export class AppModule { }
С выше app.module.ts
я получаю следующую ошибку:
Вышеупомянутая ошибка исчезает, как только я добавляю оба своих динамических компонента в массив declarations
. В вышеупомянутых официальных документах также говорится, что нам не нужно объявлять компоненты, доступные из компонента entryComponents
или bootstrap
. Я также посетил этот ответ, но это кажется недостаточно удовлетворительным, поскольку это относится к Ionic.
Пожалуйста, помогите мне узнать, где мне не хватает этого. Заранее спасибо! :)
The aforementioned official docs also says that we do not need to declare components that are reachable from entryComponents or bootstrap component.
Можете ли вы указать точное место, где это указано в документе? - person yurzui   schedule 16.10.2018declarations
. В дополнение к этому, входные компоненты также должны быть объявлены в массивеentryComponents
(уровень NgModule или Component) либо явно, либо через массивbootstrap
, либо в виде маршрута. - person yurzui   schedule 16.10.2018