Angular 调用函数检查不同的数据类型时,角度指定ngIf类布尔属性
我试图为ngIf分配不同的angular类布尔属性,但我检查了ngSwitch和ngIf else,并使用了模板,我认为这些模板不起作用 在我的示例数据集中,我有如下内容Angular 调用函数检查不同的数据类型时,角度指定ngIf类布尔属性,angular,typescript,Angular,Typescript,我试图为ngIf分配不同的angular类布尔属性,但我检查了ngSwitch和ngIf else,并使用了模板,我认为这些模板不起作用 在我的示例数据集中,我有如下内容 dataSet: [ { total: '$382734.99', clauseName: 'showTotalDollars' }, { total: '3.22%', clauseName: 'showPercentageData' } ] if
dataSet: [ { total: '$382734.99', clauseName: 'showTotalDollars' },
{ total: '3.22%', clauseName: 'showPercentageData' }
]
if (clauseName == 'showTotalDollars') then
*ngIf="showTotalDollars";
else if (clauseName == 'showPercentageData') then
*ngIf="showPercentageData";
其中,我的类布尔属性定义为
showTotalDollars: boolean = true;
showPercentageData: boolean = false;
在我的angular代码中,我尝试了以下不起作用的方法
<div class="ng-container" *ngFor="let dataset of sales.dataset">
<div class="ng-container" *ngIf="{{dataset.clauseName}}">
<mat-list-item><span>{{total}}</span></mat-list-item>
</div>
</div>
ngIf does not work with interpolation.
I also tried
*ngIf="getClauseName(item)"
In my ts code
getClause(clickedItem: string) {
if (clickedItem.clauseName == 'showTotalDollars') {
return 'showTotalDollars;
}
else if (clickedItem.clauseName == 'showPercentageData') {
return 'showPercentageData;
}
... and so on
}
当angular代码循环通过数据集中的每条记录并检查clauseName(有很多,而不仅仅是2个)并指定类布尔属性名时,我需要这样的东西。像这样工作的东西
dataSet: [ { total: '$382734.99', clauseName: 'showTotalDollars' },
{ total: '3.22%', clauseName: 'showPercentageData' }
]
if (clauseName == 'showTotalDollars') then
*ngIf="showTotalDollars";
else if (clauseName == 'showPercentageData') then
*ngIf="showPercentageData";
在讨论了插值和getClauseName函数之后,我不确定如何实现这一点
所需的行为将是ngFor循环通过数据集中的每个记录(有许多记录)并检查clauseName,它给出了数据类型的指示。找到一种从ts类中将ngIf动态设置为特定布尔属性名称的方法
感谢您的帮助。谢谢。工作代码将是
<div class="ng-container" *ngFor="let dataset of sales.dataset">
<div class="ng-container" *ngIf="this[dataset.clauseName]">
<mat-list-item><span>{{total}}</span></mat-list-item>
</div>
</div>
{{total}}
您能否创建此示例的stackblitz?您要检查的条件是什么