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

Angular2 currency filter formats negative numbers with parenthesis

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

它只是显示普通 -.00 但我想这样显示 (.00)。我怎样才能做到这一点。

{{ -18 | currency }}

我想要的结果是(.00)而不是-.00

如果您愿意,您可以轻松编写自己的自定义管道来获得同样的效果。

@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 并搭载该逻辑,而不是实现您自己的逻辑。

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