2017-03-15 93 views
1

AngularJs货币过滤器格式化带负数的负数。这里我使用的是Angular 2货币管道,它不会将负数格式化为括号。Angular2货币过滤器格式带括号的负数

它只是显示普通-$18.00,但我想要显示这样的($18.00)。我怎样才能做到这一点。

{{ -18 | currency }} 

我要的结果是($18.00),而不是-$18.00

+0

问题看起来不清楚。 '({{-18 | currency}})' – 2017-03-15 15:51:21

+0

_“在AngularJs货币过滤器格式中带负圆括号的负数”_这是不正确的。也许你使用了自定义过滤器或两个过滤器。 – zeroflagL

+0

这种情况只发生在IE不在其他浏览器中 – praveen

回答

0

如果你愿意,你可以很容易地编写自己的定制管给你同样的效果。

@Pipe({ name: 'myCurrency' }) 
export class MyCurrencyPipe implements PipeTransform { 
    transform(value: number): string { 
    if (value < 0) { 
     return `(${value.toFixed(2)})`; 
    } 
    return value.toFixed(2); 
    } 
} 

(不要忘记导入Pipe和PipeTransform)。

以上是粗略版本。适当的版本应该检查空值/未定义的输入值。您也可以使用现有的CurrencyPipe.transform并搭载该逻辑,而不是自行实施。

关键问题是不要回避编写自己的管道。他们很容易实现。