angularjs - 在 Angular 中以德语格式 "having comma"输入十进制数效果不佳

标签 angularjs localization internationalization

我正在尝试根据用户 PC 本地化数据输入模块(以 Angular 编写)(例如 PC 语言设置为德语),因此模块应该接受“,”作为小数点分隔符而不是“。 “, 所以我使用了 Angular 本地化文件(例如:angular-locale_de-de.js)但是我在使用逗号插入十进制数字时遇到问题,如下所示: 在德国 PC 设置中,当用户在输入文本框中以这种格式“5,4”插入十进制数时,此值标签处的显示显示为 Empty 而不是 5,40 代码处的标签如下:<label>{{mynumber | number:2}}</label>

但是当用户插入:“5.4”时,标签显示“5,40” 为简单起见,我使用下面的代码

<html>
   <head>
   <script LANGUAGE=javascript src="angular.js"></script>
       <script LANGUAGE=javascript src="https://code.angularjs.org/1.2.9/i18n/angular-locale_de-de.js"></script>
      </script>
</head>
<body ng-app  >
<input  type=number id="txt" ng-model="mynumber" >
<label>{{mynumber| number : 2}}</label>
</body>
</html>

当在 Controller 上使用下面的过滤器时,这也适用: $filter('number')(mynumber, 2) 当使用逗号分隔符插入数字时,请问如何正确格式化数字(如上所示应该是 5,40 而不是空)? 请注意:即使使用“angular-locale_de-de.js”也存在此问题

您还可以就如何加载正确的 Angular 本地化文件(例如:angular-locale_de-de.js 取决于用户语言 PC 设置)提出建议吗? 谢谢

最佳答案

有一个 Angular 指令(我是作者),它只允许数字、减号和选定的分隔符“,”或“,”。链接:https://github.com/uhlryk/angular-dynamic-number

您可以配置整数位数、小数位数、选择分隔符,或允许正数、负数或两者。它阻止输入 View 值中的其他字符,但动态转换模型值。这个模块也有过滤器来修改 ngBind 以显示例如逗号分隔符而不是点。

安装(bower、npm 或手动)后,将模块作为依赖项添加到您的应用程序,然后:

<input  type="text" id="txt" ng-model="mynumber" awnum num-sep="," num-fract="2">
<label>{{mynumber| awnum : 2 : ',' : 'round' : 'true'}}</label>

我构建此模块是为了处理带有波兰价格的表格。

关于angularjs - 在 Angular 中以德语格式 "having comma"输入十进制数效果不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32340094/

相关文章:

codeigniter - PyroCMS 语言支持

java - 一台 Apache Tomcat 应用程序服务器,带有 2 个已配置的 war 应用程序和一个 MessageSource 异常

C# - 在同一键盘布局中的两个不同 IME 之间自动切换

.net - WinForms 应用程序的本地化和后来的 UI 更改

internationalization - sencha touch/phonegap/iOS : German Strings for Next Done, 复制粘贴....

javascript - Angular js - 幻灯片 View 但不是主页 - ng-animate

java - 带有 Maven 的 Netbeans 平台应用程序因 Bundle.properties 更改而失败

angularjs - 在执行 Controller 之前让 AngularJS 编译指令和链接函数

javascript - 引导后动态地将 Controller 分配给元素

javascript - 如何使用div内的数组和ng重复打印逗号分隔的值?