首页 > 解决方案 > 不能在 Angular 中结合静态元素和获取 ElementRef

问题描述

我试图在ParentComponent中获取子组件的索引。我的ParentComponent结构是

<mat-toolbar>
  <ng-container #buttonContainer>
    <chameleon-ng-button [config]="buttonAdd"></chameleon-ng-button>
  </ng-container>
</mat-toolbar>

<ng-template #tmpButton let-config>
  <chameleon-ng-button [config]="config"></chameleon-ng-button>
</ng-template>

我像这样初始化buttonContainer

@ViewChild('buttonContainer', { read: ViewContainerRef, static: true })
protected buttonContainer: ViewContainerRef;

有了这个,我希望我可以拥有默认组件(buttonAdd)并可以使用动态加载其他按钮

const buttonTmp = this.tmpButton.createEmbeddedView({
   $implicit: config,
});

this.buttonContainer.insert(buttonTmp);

找了一会儿,我还是不明白为什么我无法通过这种方式 获取我的ButtonAdd的索引this.buttonContainer.length

我得到的是空数组而不是 1。任何答案将不胜感激:)

标签: angulardirectiveangular-dynamic-components

解决方案


推荐阅读