【问题标题】:Currency Pipe with dynamic arg具有动态 arg 的货币管道
【发布时间】:2018-09-14 08:34:11
【问题描述】:

这个:

<div *ngIf="isMonetary(col)">
  {{ row[col] | currency }}
</div>

有效,但默认使用美元。

文档 (https://angular.io/api/common/CurrencyPipe) 说您可以传递的第一个参数是 ISO 4217 标准中的货币

我有符合 ISO 4217 标准的货币,但它必须是动态的。它不是每个组件,也不是每个表,而是表中的每个条目。

Angular 的货币管道拒绝解释并且以某种方式期望 args 是静态的:

这是作为字符串读取的,写出的“getCurrency(row)”会在货币价值之后显示在我的页面上:

<div *ngIf="isMonetary(col)">
  {{ row[col] | currency:'getCurrency(row)' }}
</div>

这是一个 HTML 语法错误:

<div *ngIf="isMonetary(col)">
  {{ row[col] | currency:'{{row['currency']}}' }}
</div>

原来如此:

<div *ngIf="isMonetary(col)">
  {{ row[col] | currency:'{row['currency']}' }}
</div>

原来如此:

<div *ngIf="isMonetary(col)">
  {{ row[col] | currency:{row['currency']} }}
</div>

原来如此:

<div *ngIf="isMonetary(col)">
  {{ row[col] | currency:'row['currency']' }}
</div>

有办法解决吗? (不,我不会为每种现有货币添加*ngIf="")。

【问题讨论】:

    标签: angular dynamic formatting pipe currency


    【解决方案1】:

    在您的每次尝试中,您都将要解释的值放入单个引号中

    举例

    {{ row[col] | currency:'getCurrency(row)' }}

    如果您的方法 getCurrency() 返回 ISO 4217 字符串,只需删除那些 quot 和 angular 即可正确解释它们

    {{ row[col] | currency:getCurrency(row)}}

    【讨论】:

      【解决方案2】:

      试试这个:

      <div *ngIf="isMonetary(col)">
        {{ row[col] | currency:row['currency'] }}
      </div>
      

      【讨论】:

        【解决方案3】:

        我用蛮力解决了这个问题

        它是:

        {{ row[col] | currency:(row['currency']) }}
        

        【讨论】:

          猜你喜欢
          • 2018-07-18
          • 1970-01-01
          • 2017-07-05
          • 1970-01-01
          • 2017-01-16
          • 2017-10-09
          • 2019-04-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多