在 ng-template 中访问组件

Access component inside on ng-template

我在 ng-template 中有一个组件。访问它以调用方法的最佳方式是什么?我目前 运行 遇到一个问题,即它总是未定义或无法通过我用来访问它的常规方法访问。

<ng-template #template>
<app-planned-expense-edit-form #editform
                               (save)="onPlannedItemSave($event)"
                               (isHidden)="onIsHidden($event)">

</app-planned-expense-edit-form>
</ng-template>

使用 ,您可以定义仅由 Angular 呈现的模板内容,当您直接或间接明确指示它这样做时,允许您完全控制内容的方式和时间被展示。 我建议使用而不是使用,因为可以用来保存指令而无需创建 HTML 元素。

并像这样重写你的代码

<ng-template #template [ngIf]="true">
<app-planned-expense-edit-form #editform
                               (save)="onPlannedItemSave($event)"
                               (isHidden)="onIsHidden($event)">

</app-planned-expense-edit-form>
</ng-template>

如果您想使用带有 { static: true } 配置的 @ViewChild 访问 TS 中的这些元素。引入了 { static: true } 选项以支持动态创建嵌入式视图。