这就是你想要的,它不仅可以处理澳元,还可以处理所有货币:
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' }}
首先它将通过调用this.currencyPipe.transform(value, currencyCode, symbolDisplay, digits); 来完成CurrencyPipe 所做的所有事情,然后通过删除其中的所有字母来修改输出。
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}}