gpt4 book ai didi

javascript - 如何在 Angular 2 的同一组件中使用多个 ng-content?

转载 作者:IT王子 更新时间:2023-10-29 03:14:33 25 4
gpt4 key购买 nike

我想在我的组件中显示不同的模板。只有一个会显示。如果hasURLtrue , 我想显示 <a></a> .如果hasURLfalse , 我想显示 <button></button> .

如果 hasURL 为 false,组件显示按钮,但 ng-content 为空的问题。因为它已经在第一个“a></a>

请问有什么办法可以解决吗?

        <a class="bouton" href="{{ href }}" *ngIf="hasURL">
<ng-content>
</ng-content>
</a>

<button class="bouton" *ngIf="!hasURL">
<ng-content>
</ng-content>
</button>

最佳答案

您可以将 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

另见

Angular 9 demo

关于javascript - 如何在 Angular 2 的同一组件中使用多个 ng-content?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44699469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com