我要在我的app.module中添加以下代码,以将en-AU语言环境设置为默认语言:
import { registerLocaleData } from '@angular/common';
import localeAu from '@angular/common/locales/en-AU';
registerLocaleData(localeAu);
@NgModule({
providers: [
{ provide: LOCALE_ID, useValue: 'en-AU' },
],
})
我已将其注入到我的组件中
fee = 20.0
constructor(
@Inject(LOCALE_ID) public locale: string) {
}
当我尝试查看组件中的语言环境时:
<h1>Current locale: {{ locale }}</h1>
<h1>Fee default: {{ fee | currency }}</h1>
<h1>Fee AUD: {{ fee | currency:'AUD' }}</h1>
我看到以下内容:
Current locale: en-AU
Fee default: USD20.00
Fee AUD: $20.00
为什么默认费用不是$ 20.00?
答案 0 :(得分:2)
发现了一些非常奇怪的东西:
根据display
管道中Currency
属性的documentation默认值是symbol
,出于某种奇怪的原因,它是'AUD'。如果要显示 $ 符号,请将代码更改为:
<h1>Fee AUD: {{ amount | currency:null:'symbol-narrow' }}</h1>
现在,对于奇怪的部分,我创建了stackblitz进行演示。它与您描述的问题相同。但是,如果我将代码从更改为
registerLocaleData(localeAu);
到
registerLocaleData(localeAu, 'AU');
代码工作正常,符号 USD 被替换为 $ 。