是否可以使用Angular中的Portal在父母<ng-content>
中投射子模板内容?我有一个简单的子组件,该子组件由父组件使用<ng-template>
包装:
<ng-template [cdkPortalOutlet]="parentPortal">
<p>This should be projected into parent</p>
</ng-template>
父级是显示标题和子级的简单组件:
<div>
<h1>{{ title }}</h1>
<ng-content></ng-content>
</div>
我正在OnInit
生命周期挂钩中创建Parent的门户网站实例:
ngOnInit() {
this.parentPortal = new ComponentPortal(ParentComponent);
this.parentPortal.component.ngBaseDef.inputs.title = 'This is new title';
}
角度/材质文档建议在AfterViewInit
中执行此操作,但随后我得到
错误:ExpressionChangedAfterItHasBeenCheckedError:表达式具有 检查后更改。先前的值:“门户:未定义”。 当前值:“门户:[对象对象]”。
但是,什么也没有显示,也没有错误显示。这有可能吗?为什么没有渲染? The full example is on stackblitz。