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