加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

html – 有可能使AngularJS数字输入国际化吗?

发布时间:2020-12-14 19:33:42 所属栏目:资源 来源:网络整理
导读:我们试图让AngularJS国际化 input type ='number'/值. 我们已经包括了本地化文件(例如,angular-locale_it-it.js),但是这些值仍然使用英语区域设置显示. 这是一个问题,因为我们的后端(和管理)期望数字值在用户的区域设置,接收123.45而不是123,45导致错误. 你
我们试图让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(注意,我住在德国,我们使用逗号符号).因此,如果浏览器不使用点符号,则不会正确地解析该数字,即使您居住在逗号表示法的区域中

请纠正我,如果有错误的话;)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读