html – 有可能使AngularJS数字输入国际化吗?
我们试图让AngularJS国际化< input type ='number'/>值.
我们已经包括了本地化文件(例如,angular-locale_it-it.js),但是这些值仍然使用英语区域设置显示. 这是一个问题,因为我们的后端(和管理)期望数字值在用户的区域设置,接收123.45而不是123,45导致错误. 你可以找到一个例子on jsFiddle. 它适用于Chrome 27 但它在Firefox 21和Internet Explorer 10中不起作用. 解决方法
这可能不是你想要的答案,但也许它可以帮助你一点点:
JsBin:http://jsbin.com/iyulaj/1/ 使用指令,您可以获取输入的数据,解析它,然后将其放在$scope变量中.请参阅:http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController($解析器和$formatters,我从:Using angularjs filter in input element). 该指令可以搜索一个逗号,并用一个点替换它.它可能看起来像这样: angular.module('MyModule').directive('numberinput',function () { return { restrict: 'A',require: 'ngModel',link: function(scope,element,attrs,ngModelController) { ngModelController.$parsers.push(function(data) { //convert data from view format to model format return data.replace(',',"."); //converted }); ngModelController.$formatters.push(function(data) { //convert data from model format to view format return data.replace('.',","); //converted }); // http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController } }; }); 输入字段: <input ng-model='value' type='text' numberinput='' /> 另请注意,输入现在是一个文本字段.看看这个:http://jsbin.com/iyurol/1/ 输入是一个数字字段.但是键入11,5,它将输出ùndefined(注意,我住在德国,我们使用逗号符号).因此,如果浏览器不使用点符号,则不会正确地解析该数字,即使您居住在逗号表示法的区域中 请纠正我,如果有错误的话;) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |