Angular en-AU语言环境不适用于货币管道

时间:2018-11-12 00:50:19

标签: angular

我要在我的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?

1 个答案:

答案 0 :(得分:2)

发现了一些非常奇怪的东西:

根据display管道中Currency属性的documentation默认值是symbol,出于某种奇怪的原因,它是'AUD'。如果要显示 $ 符号,请将代码更改为:

<h1>Fee AUD: {{ amount | currency:null:'symbol-narrow' }}</h1>

现在,对于奇怪的部分,我创建了stackblitz进行演示。它与您描述的问题相同。但是,如果我将代码从更改为

registerLocaleData(localeAu);

registerLocaleData(localeAu, 'AU');

代码工作正常,符号 USD 被替换为 $