Búsqueda de sitios web

html - Espacio de Angular Pipe


Estoy usando pipe para aplicar qué tipo de moneda se mostrará. R$o $. Pero se queda atascado con el valor Total, quería saber cómo puedo obtener un espacio entre los valores del pipe

Resultado esperado R$86,20

<ng-container matColumnDef="totalValue">
            <mat-header-cell class="mr-16" *matHeaderCellDef fxFlex="15"  fxLayoutAlign="end center">Total R$</mat-header-cell>
            <mat-cell  class="mr-16" *matCellDef="let element" fxFlex="15"  fxLayoutAlign="end center" >
              <p class="text-truncate" matTooltip='{{ element.totalValue  | currency : element.currency : "symbol" }}'>
                {{ element.total | currency : element.currency : "symbol" }}
              </p>
            </mat-cell>
          </ng-container>

Respuesta #1

Puedes definir un CurrencySpacePipe personalizado, que extienda CurrencyPipe e inserte un espacio después del símbolo de la moneda:

import { Pipe } from '@angular/core';
import { CurrencyPipe } from '@angular/common';

@Pipe({ name: "currencySpace" })
export class CurrencySpacePipe extends CurrencyPipe {
  transform(value: number, ...args: any[]): string {
    return super.transform(value, ...args).replace(/([^\d.,])(\d)/, "$1 $2");
  }
}

y usa esa tubería, en lugar de la CurrencyPipe estándar, en tu marcado:

{{ element.total | currencySpace : element.currency : "symbol" }}

Mira este stackblitz para una demostración.

Respuesta #2

Concatena el espacio al final como se muestra en el código a continuación. Funciona para mí. Por cierto, estoy usando Angular 6.

<span>{{ product.price | currency:'USD' + ' ' }}</span>