Такие директивы, как ngIf
, ngClass
, ngStyle
, не работают в компонентах с отложенной загрузкой (появившихся в Angular 9).
core.js:12626 Can't bind to 'xxx' since it isn't a known property of 'xxx'.
Единственная привязка, которую мне удалось заставить работать, выглядит примерно так: [style.color]="color"
. Ленивая загрузка пакета js webpack работает нормально, если нет привязки или есть просто привязка как [style.color]="color"
.
Ленивый загруженный компонент не объявлен в NgModule и загружается как таковой.
async lazy1() {
this.viewContainerRef.clear();
const { LazyComponent } = await import("./lazy.component");
this.viewContainerRef.createComponent(
this.cfr.resolveComponentFactory(LazyComponent)
);
}
Полный пример (по какой-то причине не может быть запущен в stackblitz): https://stackblitz.com/edit/angular-zyp3wm
Это можно воспроизвести шаг за шагом, следуя приведенной ниже статье https://johnpapa.net/angular-9-lazy-loading-components/ Вам просто нужно добавить ngIf
где-нибудь в один из ленивых компонентов, чтобы получить проблему, с которой я столкнулся.