允许输入字段AngularJS

时间:2017-03-14 17:15:14

标签: angularjs

我遇到了一个AngularJS过滤器,而不是将输入字段中的数值更改为格式化数字i.e 2500 becomes 2,500,当应用于modal时,它会解析为整数。

我很想知道是否可以添加小数点并保留用户的格式,以便2500.24变为2,500.24

脚本如下:

angular.directive('format', function ($filter) {
    'use strict';

    return {
        require: '?ngModel',
        link: function (scope, elem, attrs, ctrl) {
            if (!ctrl) {
                return;
            }

            ctrl.$formatters.unshift(function () {
                return $filter('currency')(ctrl.$modelValue, '', 2);
            });

            ctrl.$parsers.unshift(function (viewValue) {
                var plainNumber = viewValue.replace(/[\,]/g, ''),
                    b = $filter('currency')(plainNumber, '', 2);

                elem.val(b);

                return plainNumber;
            });
        }
    };
});

我使用的模式是:

<input format pattern="[0-9]+([\.,][0-9]+)*" />

1 个答案:

答案 0 :(得分:0)

您可以使用插件ng-currency-mask。

https://github.com/vtex/ng-currency-mask

var app = angular.module('app', ['vtex.ngCurrencyMask']);
<input type="text" name="value" placeholder="0.00" ng-model="value" currency-mask />