2017-03-14 113 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 />

相關問題