如何在没有* ngIf的情况下渲染ng-container或ng-template?

时间:2017-08-01 08:58:30

标签: angular ionic3

我需要将tappable指令添加到自定义组件中的ion-card组件。我使用@Input() myInputBool,例如:

<ng-container *ngIf="myInputBool">
    <ion-card tappable>
        <ng-container render="myContent"></ng-container>
    </ion-card>
</ng-container>

<ng-container *ngIf="!myInputBool">
    <ion-card tappable>
        <ng-container render="myContent"></ng-container>
    </ion-card>
</ng-container>

<ng-container #myContent>
    This is my content
</ng-container>

当然它不起作用,因为没有“渲染”选项。到目前为止,我的解决方法是在ng-container

中添加一个不存在的变量
<ng-container *ngIf="thisVariableDoesNotExist else myContent"> </ng-container>

但它感觉很糟糕和黑客。有更好的方法吗?

1 个答案:

答案 0 :(得分:7)

我会使用ngTemplateOutlet代替render选项:

<ng-container *ngTemplateOutlet="myContent"></ng-container>

另见