【问题标题】:Angular ngIf two variables are the same (string and number)Angular ngIf 两个变量相同(字符串和数字)
【发布时间】:2019-10-04 19:50:05
【问题描述】:

所以我在页面上加载了一个变量sight.pin_lang_id。 (有时是 1,有时是 2)。 我还有一个服务可以得到lang。目前它有一个名字和ID。 见下图:

现在我只想在lang.idsight.pin_lang_id 匹配时才显示lang.name

我用 ngIf 试过这个:

<div *ngIf="sight.pin_lang_id == lang.id">
     {{lang.name}}
</div>

但我只是收到一个错误ERROR TypeError: Cannot read property 'pin_lang_id' of undefined

但是当我这样做时,它工作正常:

<div *ngIf="sight?.pin_lang_id == 2">
     show me
</div>

注意:sight.pin_lang_id 是字符串类型,因此在控制台中显示“2”。 lang.id 是第 2 位,但仅显示 2。

如何创建一个 ngIf 来检查字符串是否等于数字(来自变量)?

【问题讨论】:

  • 现在到底是什么问题,您将字符串与数字进行比较,这在您的情况下似乎有效。

标签: angular angular-ng-if


【解决方案1】:

我不确定这是否是您要完成的任务,但您可以将数字转换为字符串或将字符串转换为数字

类似

<div *ngIf="sight?.pin_lang_id == '2'">
     show me
</div>

应该工作

【讨论】:

    【解决方案2】:

    <div *ngIf="sight?.pin_lang_id == lang.id">
         show me
    </div>

    应该没问题,问题是在阅读sight时它可能还没有值,所以这就是?的原因

    【讨论】:

      【解决方案3】:

      诀窍是将 ngIf 放入 ngFor:

      <div *ngFor="let lang of langs" [lang]="lang">
          <div *ngIf="sight.pin_lang_id == lang.id">
              {{lang.name}}
          </div>
      </div>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-02
        • 2020-02-28
        • 1970-01-01
        • 1970-01-01
        • 2020-07-24
        • 2018-02-04
        • 1970-01-01
        相关资源
        最近更新 更多