诸如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"
. 延迟加载 webpack js 包只要没有绑定或者只是简单的绑定作为[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
在其中一个惰性组件中添加一个即可获得我遇到的问题。