如何为在* ngIf中声明的模板调用@ViewChild?

问题描述 投票:0回答:1

我正在表内动态调用组件。我正在使用ViewContainerRef在模板内动态呈现组件。但是没有填充另一个元素内部的模板。可能是因为在声明@ViewChild时,另一个ng-template不在DOM中。

这里是组件代码:

@ViewChild('loadComponent', {static: false, read: ViewContainerRef}) ref;

这是模板代码:

<ng-template #loadComponent></ng-template> // this works

<table>
...
    <tr *ngFor="let data of dataItems">       

       <td *ngIf="data.isDisplay">        

       <ng-template #loadComponent></ng-template> // this does'nt work  

    </td>

...

因此,一旦动态评估td代码,如何确保组件在td内部呈现?

javascript angular components
1个回答
0
投票

您可以在外部调用该模板,并且可以进行以下操作:

<td *ngIf="data.isDisplay; else loadComponent">

它应该在tr的循环中显示loadComponent的内容

© www.soinside.com 2019 - 2024. All rights reserved.