回答
您可以创建一个过滤器,您可以在显示数字时在整个应用程序中使用该过滤器。
创建过滤器:
angular.module('myApp', [])
.filter('formatNumber', function() {
return function(input) {
// Get the locale using any technique
var locale = window.navigator.language;
if (locale == 'GERMANY') { // test code, replace with your logic
return // German formatted number
else
return // defaults
};
})
角2:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'formatNumber'})
export class FormatNumberPipe implements PipeTransform {
transform(value: string, args: string[]): any {
if (!value) return value;
// Get the locale using any technique
var locale = window.navigator.language;
if (locale == 'GERMANY') { // test code, replace with your logic
return // German formatted number
else
return // defaults
}
}
用法在HTML:
<div>
<span class="qty">{{ number | formatNumber }} </span>
</div>
我需要在Angular 2中,并且我们不能为所有用户区域设置编写if else。你能帮忙吗? –
@PranjalBakshi您需要为其他语言环境定义一些格式化程序,否则这不能自动执行。我更新了角2的代码。我想只有一些语言环境需要特殊格式化并非全部。 –
已经有在JavaScript中能够使用的功能。 你可以称它。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
例子:
var number = 123456.789;
// German uses comma as decimal separator and period for thousands
console.log(number.toLocaleString('de-DE'));
// → 123.456,789
// Arabic in most Arabic speaking countries uses Eastern Arabic digits
console.log(number.toLocaleString('ar-EG'));
// → ١٢٣٤٥٦٫٧٨٩
// India uses thousands/lakh/crore separators
console.log(number.toLocaleString('en-IN'));
// → 1,23,456.789
// the nu extension key requests a numbering system, e.g. Chinese decimal
console.log(number.toLocaleString('zh-Hans-CN-u-nu-hanidec'));
// → 一二三,四五六.七八九
// when requesting a language that may not be supported, such as
// Balinese, include a fallback language, in this case Indonesian
console.log(number.toLocaleString(['ban', 'id']));
// → 123.456,789
你可以只此语言环境存储在它周围的一些常数文件&发挥。
但我要如何阅读用户区域设置呢? –
你可以使用'navigator.language' –
- 1. 基于用户区域的iOS设置日期格式
- 2. 格式部分日期基于区域
- 3. 表单LoginUrl - 如何格式化此区域以使用区域?
- 4. 如何格式化日期区域设置 - 取决于angularjs?
- 5. 基于2个不同值格式化单元格
- 6. 如何基于用户角色
- 7. 基于对角2
- 8. 在java中基于用户变量的小数位格式化
- 9. 如何基于用户角色创建程序化内容(Drupal)
- 10. 如何应用条件格式用于基于单元格范围的多个小区
- 11. 如何更改Windows用户的区域设置/日期格式?
- 12. 文字区域中的角2多个字体颜色
- 13. Iphone基于电话号码格式的区域设置
- 14. 保持文本区域格式化
- 15. 基于多个小区
- 16. 基于用户的子域
- 17. 基于多个字段的条件格式化
- 18. 角2 HTTP许多用户
- 19. 格式化基于不同用户输入
- 20. 基于多个(多于5个)引用域的PHP重定向
- 21. laravel基于用户角色的多个控制器的路由
- 22. 如何根据区域设置格式化日期?
- 23. 如何让我的文本区域自动格式化文本
- 24. Symfony /策略:基于时区格式化日期时间?
- 25. 使用的区域设置在格式化
- 26. 在MessageFormat中使用区域设置递归地格式化
- 27. 基于公式格式化Excel工作表 - 如何做
- 28. 基于json提供的动态生成多个画布区域
- 29. 如何更改基于域名的视图格式
- 30. 基于系统区域设置在C++
您可以参考以下链接:http://stackoverflow.com/questions/37684360/how-to-set-locale-for-numbers-in-angular-2-0 –
您是否使用提供的示例?我已经提到这一点。它不工作。 –