我想在我的组件中显示不同的模板。只有一个会显示。
如果hasURL
为true
,我想显示<a></a>
。
如果hasURL
为false
,我想显示<button></button>
。
问题如果hasURL为false,组件显示按钮,但ng-content为空。因为它已在第一个&#34; a></a>
有没有办法解决这个问题?
<a class="bouton" href="{{ href }}" *ngIf="hasURL">
<ng-content>
</ng-content>
</a>
<button class="bouton" *ngIf="!hasURL">
<ng-content>
</ng-content>
</button>
谢谢!
答案 0 :(得分:55)
您可以ng-content
中包含ng-template
并使用ngTemplateOutlet
<a class="bouton" href="{{ href }}" *ngIf="hasURL">
<ng-container *ngTemplateOutlet="contentTpl"></ng-container>
</a>
<button class="bouton" *ngIf="!hasURL">
<ng-container *ngTemplateOutlet="contentTpl"></ng-container>
</button>
<ng-template #contentTpl><ng-content></ng-content></ng-template>
<强> Plunker Example 强>
另见