Angular2货币过滤器使用括号格式化负数

时间:2017-03-15 15:49:14

标签: angular pipe currency-pipe

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

它只显示简单的-$18.00,但我希望显示为($18.00)。我怎样才能做到这一点。

{{ -18 | currency }}

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

1 个答案:

答案 0 :(得分: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)。

以上是粗略版本。正确的版本应检查nulls / undefined的输入值。您也可以使用现有的CurrencyPipe.transform并捎带该逻辑而不是实现您自己的逻辑。

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