如何在角度组件中使用DecimalPipe?

时间:2018-12-17 07:25:19

标签: angular pipe angular7 angular-pipe

我有一个要求,我必须使用ts中的十进制管道来转换数字

代替像这样使用十进制管道

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

我想从组件中进行操作,有人可以帮助我吗?

谢谢

3 个答案:

答案 0 :(得分:4)

像往常一样,您可以依靠DI。您可以在ts中覆盖转换功能。

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

在提供程序数组中添加DecimalPipe,否则将给出错误

providers: [DecimalPipe,...]

答案 1 :(得分:2)

您可以在 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数字更新为所需的位数。

答案 2 :(得分:1)

您还可以使用formatNumber函数(DecimalPipe在后台使用它)。无需处理DI或将任何内容添加到provider数组。