当前位置: 首页 > 知识库问答 >
问题:

当调用函数检查不同的数据类型时,角度赋值ngIf类布尔属性

宗政霄
2023-03-14

我试图给一个ngIf分配不同的角度类布尔属性,但是我用模板检查了ngSwitch和ngIf else,我不认为这些会起作用。

在我的示例数据集中,我有如下内容

   dataSet: [ { total: '$382734.99', clauseName: 'showTotalDollars' },
                    { total: '3.22%', clauseName: 'showPercentageData' }
              ]

其中我的类布尔属性定义为

 showTotalDollars: boolean = true;
  showPercentageData: boolean = false;

在我的角度代码中,我尝试了以下不起作用的方法

<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
 }

这也不起作用。

It seems like in the ngIf works with *ngIf="showTotalDollars" and *ngIf="showPercentageData" in the html code and not getting assigned the name of the boolean properties in the ts code.

当angular代码遍历数据集中的每条记录,检查子句名(有很多,不只是2个)并分配类布尔属性名时,我需要这样的工作。像这样工作的东西

if (clauseName == 'showTotalDollars') then
  *ngIf="showTotalDollars";
else if (clauseName == 'showPercentageData') then
  *ngIf="showPercentageData";

在使用插值和getClauseName函数之后,我不确定如何实现这一点。

所需的行为将是ngFor循环到数据集中的每个记录(有很多)并检查子句名称,它给出了数据类型的指示。找到一种方法来动态地将ngIF设置为ts类中的特定布尔属性名称。

任何帮助,不胜感激。谢谢。

共有1个答案

邢凯歌
2023-03-14

工作代码是

<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>
 类似资料:
  • 我试图约束泛型函数的返回类型。(为了简化示例,请忽略函数的实际“有用性”)。 但是返回语句会导致打字错误- -这让我很困惑。在我的理解中,

  • 布尔值类型的数据表示逻辑运算结果,有两种取值: 真,使用 True 关键字表示。 假,使用 False 关键字表示。 1. 比较运算 Python 提供了 6 种比较运算用于比较数值大小,如下所示: 运算符 功能描述 > 大于 >= 大于或者等于 == 等于 != 不等于 < 小于 <= 小于等于 比较运算的结果返回 True 或者 False,如下所示: >>> 2 > 1 True >>> 2

  • 当另一个函数的布尔值设置为“True”时,我试图做一些事情。我尝试使用return(variable),但当涉及到请求布尔值的函数时,它总是说False。在问这个问题之前,我看了一下这里,因为我觉得这似乎是非常基本的东西。但我找不到任何有用的东西。我希望有人能帮我做这件事。这是我的代码。

  • 我知道当我们为一个无符号数据类型分配负值时,两个对它的恭维会被存储,这是数据类型可以存储的最大值减去我们分配的负值。为了测试这一点,我编写了一个程序来说明这一点,但是我无法理解char数据类型的行为。 输出为 compare(...) 函数针对具有不同数据类型的参数的时间调用 无符号短- 2 字节,因此 -4 被存储为 65532。 无符号int - 4字节,但是当我们试图在输出时将其类型转换为i

  • 问题内容: 由于MySQL似乎没有任何“布尔”数据类型,因此您“滥用”哪种数据类型在MySQL中存储正确/错误信息? 尤其是在从PHP脚本进行读写的情况下。 随着时间的流逝,我已经使用并看到了几种方法: tinyint,包含值0/1的varchar字段, 包含字符串‘0’/‘1’或’true’/’false’的varchar字段 最后枚举包含两个选项“ true” /“ false”的字段。 以上

  • 我正在从事一项与react基于本机应用程序的用户管理相关的任务。在他们成功注册为用户后,我添加了一个存储布尔值的数据,并将其命名为emailVerifiedAccount(如果他们成功注册,这是存储的数据,如果他们单击发送给他们的电子邮件验证链接,则表明他们是否为验证用户)。在登录屏幕中,我想检查我在onAuthStateChanged中从firestore获得的布尔值,并且仅当我获得的email