使用角度/材质门户将子组件投影到父组件中

时间:2019-02-13 09:47:10

标签: angular angular-material2 angular-lifecycle-hooks

是否可以使用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

0 个答案:

没有答案