Как использовать DecimalPipe из компонента в угловых? - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть требование, что я должен преобразовать число, используя десятичную трубу из ts

Вместо использования десятичной трубы, как это

<td>{{rmanFmvRulesDef.max  | number :'1.2-2'}}</td>

Я хочу манипулировать им из компонентаКто-нибудь, пожалуйста, помогите мне?

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Как обычно, в угловых вы можете положиться на DI.Вы можете переопределить функцию преобразования в тс.

import { DecimalPipe } from '@angular/common';
class MyService {
  constructor(private _decimalPipe: DecimalPipe) {
}
transformDecimal(num) {
    return this._decimalPipe.transform(num, '1-2.2');
   }
}

Добавьте DecimalPipe в массиве провайдеров, иначе будет выдано сообщение об ошибке

providers: [DecimalPipe,...]
0 голосов
/ 17 декабря 2018

Вы можете увидеть пример на Stackblitz

Просто позвоните по: element.price = format.formatCurrency(element.price);

Как только вы определили помощника.Вы можете определить: <h2 *ngFor="let item of item">{{ item.price }}</h2> в качестве примера.

Компонент:

import { accounting } from 'accounting';

export function formatCurrency(value) {
    return accounting.formatMoney(value, '', 0, ' ', '.');
}

export function unformatCurrency(value) {
    return accounting.unformat(value);
}

Примечание: return accounting.formatMoney(value, '', 0, ' ', '.'); Вы можете изменить ' ' и . с любым разветвителем, который вы хотите , или пробел.Для того, чтобы указать число после десятичного числа, вы можете обновить число 0 до количества цифр, которое вы хотите.

...