Esta :

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

Funciona pero es con dólar por defecto.

Los documentos (https://angular.io/api/common/CurrencyPipe) dicen primero arg puede pasar es la moneda en el estándar ISO 4217

TENGO la moneda en el estándar ISO 4217 pero DEBE ser dinámico. no es por componente, o por tabla es por entrada en la tabla.

La tubería de moneda angular se niega a interpretar y de alguna manera espera que los argumentos sean estáticos:

Esto se lee como una cadena y aparece "getCurrency (fila)" escrito en mi página después del valor monetario:

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

Este es un error de sintaxis HTML:

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

Asi es esto :

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

Asi es esto :

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

Asi es esto :

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

¿Hay alguna forma de salir de esto? (no, no voy a poner un *ngIf="" para cada moneda existente).

0
tatsu 14 sep. 2018 a las 11:34

3 respuestas

La mejor respuesta

En cada uno de tus intentos pones el valor a interpretar en comillas simples

Ejemplo

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

Simplemente elimine esas comillas y angular las interpretará correctamente si su método getCurrency () devuelve una cadena ISO 4217

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

1
xrobert35 14 sep. 2018 a las 08:50

Lo descubrí con pura fuerza bruta

Es:

{{ row[col] | currency:(row['currency']) }}
1
tatsu 14 sep. 2018 a las 09:34

Prueba esto:

<div *ngIf="isMonetary(col)">
  {{ row[col] | currency:row['currency'] }}
</div>
1
Shantanu 14 sep. 2018 a las 08:48