在AngularJs中,货币过滤器使用括号格式化负数。这里我使用的是Angular 2货币管道,它不会将负数格式化为括号。
它只显示简单的-$18.00
,但我希望显示为($18.00)
。我怎样才能做到这一点。
{{ -18 | currency }}
我想要的结果是($18.00)
而不是-$18.00
答案 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并捎带该逻辑而不是实现您自己的逻辑。
关键点是不要回避编写自己的管道。它们很容易实现。