【问题标题】:Locale in Angular for currency useAngular 中用于货币使用的语言环境
【发布时间】:2017-11-07 09:38:08
【问题描述】:

我对 Angular (1.6.4) 还是很陌生,基本上我需要通过为这个 Angular 应用设置 $locale 来将货币符号更改为页面中显示的所有值。

目前我有这样的事情:

{{myCtrl.getPrice() | currency : myCtrl.user.currency.symbol}}  //returns $10

我想用这一行替换那一行:

{{myCtrl.getPrice() | currency}}

为了使用$locale设置的货币,但我的问题是如何设置$locale?在线文档在这个问题上非常简陋。

感谢任何提示,因为我现在很困,谢谢!

【问题讨论】:

  • 你用的是angular还是angularjs?您是否尝试过在 app.modules.ts 文件中设置语言环境?
  • Angular 1.6.4 版本。我有一个 app.module.js 文件,但我不知道如何设置它。
  • 在这种情况下,它的angularjs

标签: javascript angularjs locale


【解决方案1】:

你需要做的就是改变$locale服务的NUMBER_FORMATS.CURRENCY_SYM常量(记得注入控制器):

.controller('MainCtrl', ['$locale', function ($locale) {
  // this.user should come from somewhere ...

  $locale.NUMBER_FORMATS.CURRENCY_SYM = this.user.currency.symbol
}])

如果您需要为整个应用程序设置货币符号,在应用程序的运行块中更改CURRENCY_SYM 是有意义的。

【讨论】:

  • 成功了!太感谢了。基本上我按照你说的做了,在构造函数中收到了这个值,并在我的类的构造函数中更改了 $locale,并且更改在项目中是可见的。谢谢!
  • 很高兴它可以工作,我只是在写你需要在控制器中访问注入服务,但你自己想出来了:)
  • 虽然关于符号的位置有一个问题,这意味着它应该看起来像这个 10 美元或这个 10 欧元,以防万一欧元。但在这两种情况下我都得到 10 欧元/10 美元。如何让它知道应该在哪里?附言。我可以有多种语言。我们不应该也设置类似'fr_FR'的东西吗?
  • 如果您有多种语言,那么您最好使用适当的本地化文件。如果您根据语言加载相应的文件(检查cdnjs.com/libraries/angular-i18n),那么您的所有本地特定功能将被自动覆盖。您不必担心符号位置和设置 CURRENCY_SYM 常量。
  • 那么如何调用i18n,我应该做什么操作而不是$locale.NUMBER_FORMATS.CURRENCY_SYM = ?
猜你喜欢
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 2017-01-09
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多