我在澳大利亚试图展示一些货币价值,我正在做
function largerNum(num1,num2){
if (isNaN(num1) || isNaN(num2)) {
return NaN;
}
c = (num1>num2)?num1:num2;
return c;
}
我得到的结果是 1,300,000澳元,我想显示 $ 1,300,000 (没有A),而不必更改为'USD'。
有没有办法自定义我的货币符号?
答案 0 :(得分:4)
您可以将您的区域设置设置为澳大利亚,然后对于AUD货币,它只会显示$。
在您的应用提供商中添加以下内容:
import { LOCALE_ID } from '@angular/core';
...
{ provide: LOCALE_ID, useValue: 'en-AU' }
然后以下只会显示$:
{{ portfolio.currentValue | currency : 'AUD' : true : '4.0' }}
答案 1 :(得分:2)
这是你想要的,它不仅会处理澳元而且会处理所有货币:
import {Pipe, PipeTransform} from '@angular/core'
import {CurrencyPipe} from "@angular/common";
@Pipe({
name: "myCurrencyPipe"
})
export class MyCurrencyPipe implements PipeTransform {
constructor(private currencyPipe: CurrencyPipe) {}
transform(value: any, currencyCode?: string, symbolDisplay?: boolean, digits?: string): string {
let transformed = this.currencyPipe.transform(value, currencyCode, symbolDisplay, digits);
let myTransformed:string[] = [];
for (var i = 0; i < transformed.length; i++) {
if(!this.isLetter(transformed[i])){
myTransformed.push(transformed[i])
}
}
return myTransformed.join("");
}
isLetter(c) {
return c.toLowerCase() != c.toUpperCase();
}
}
这样称呼:{{ portfolio.currentValue | myCurrency : 'AUD' : true : '4.0' }}
首先,它会通过调用CurrencyPipe
执行this.currencyPipe.transform(value, currencyCode, symbolDisplay, digits);
正在执行的操作,然后通过删除输出中的所有字母来修改输出。
app.module.ts
:
@NgModule({
declarations: [
//..
MyCurrencyPipe,
],
providers: [
//..
CurrencyPipe
]
//..
})
如果您想创建一个管道来处理CurrencyPipe
输出:
@Pipe({
name: 'removeLettersFromStringPipe'
})
export class RemoveLettersFromStringPipe implements PipeTransform {
transform(value: string){
let myTransformed:string[] = [];
for (var i = 0; i < value.length; i++) {
if(!this.isLetter(value[i])){
myTransformed.push(value[i])
}
}
return myTransformed.join("");
}
isLetter(c) {
return c.toLowerCase() != c.toUpperCase();
}
}
将其用作{{ portfolio.currentValue | currency : 'AUD' : true : '4.0' | removeLettersFromStringPipe}}
答案 2 :(得分:0)
currencyPipe没有提供这种可能性。一个选项是编写自己的custom pipe来删除“A”并连接这些管道。
{{ portfolio.currentValue | currency : 'AUD' : true : '4.0' | removeAFromString}}
现在连接管道:
{{1}}
答案 3 :(得分:0)
正如其他答案中所建议的,我们已经使用了自定义管道,因为我也找不到自定义AUD符号的方法。
@Pipe({
name: 'aud'
})
export class AudPipe implements PipeTransform {
transform(value: number): any {
if (value === undefined || value === null) {
return null;
}
let numberPipe = new DecimalPipe('en-AU');
return '$' + numberPipe.transform(value, '1.2-2');
}
}
答案 4 :(得分:0)
symbol-narrow
,它将满足您的需求。
<!--output 'CA$0,001.35'-->
<p>B: {{b | currency:'CAD':'symbol':'4.2-2'}}</p>
<!--output '$0,001.35'-->
<p>B: {{b | currency:'CAD':'symbol-narrow':'4.2-2'}}</p>
https://angular.io/api/common/CurrencyPipe#usage-notes
同样适用于AUD。