2017-03-14 116 views
0

我遇到过AngularJS过滤器,而不是将输入字段中的数值更改为格式化数字i.e 2500 becomes 2,500,并将其应用于modal时,它会将其解析为整数。允许输入字段中的逗号和小数点AngularJS

我想知道是否可以添加小数点并为用户保留格式,所以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]+)*" /> 

回答

0

您可以使用插件NG货币面罩。

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 />

相关问题