使用 ng-container 在 *ngIf 中嵌套条件

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

我正在处理需要根据某些条件显示行列表的要求。 有一个表格单元格(td),其值应根据某些条件填充。 我希望使用 *ngIf

以角度实现以下目标
if(value1||values2)
{
    if(value3!=null && value4==null)
    {
        //display value 3
    }
    else
    {
     //display value 4
    }
}
else
{
//display default value
}

我想要实现的目标的图示 我尝试使用 *ngIf 但收到错误 **Bidings 不能包含作业 **

<ng-container *ngIf="(value1 || value2); else showDefault">
    <ng-container *ngIf="value3!=null && value4==null; else showValue4">
    </ng-container>
    <ng-template #showValue4>
    </ng-template>
</ng-container>
<ng-template #showDefault>
</ng-template>

还有其他方法可以达到这个目的吗?

angular if-statement angular-ng-if
2个回答
4
投票

虽然您的解决方案看起来不错,但另一种方法是使用 ngTemplateOutlet 指令。

这样您就可以准备好您的

ngTemplates
并通过模板名称决定要使用的内容,如下所示:

<ng-container *ngTemplateOutlet="selected">
  This text is not displayed
</ng-container>

<ng-template #template1>
  <p>This is our template.</p>
</ng-template>

<ng-template #template2>
  <p>This is another template.</p>
</ng-template>

<ng-template #template3>
  <p>This is one more template.</p>
</ng-template>

<button (click)="selected = template1" >1</button>
<button (click)="selected = template2" >2</button>
<button (click)="selected = template3" >3</button>

在这里您可以阅读更多内容。

这里我创建了一个StackBlitz,来玩玩。


0
投票

尝试

<ng-container *ngIf="value3 && !value4; else showValue4">
© www.soinside.com 2019 - 2024. All rights reserved.