2017-03-14 35 views
0

入力フィールドの数値をi.e 2500 becomes 2,500に変更し、modalに適用すると整数として解析するよりAngularJSフィルタが出回っています。入力フィールドにカンマと小数点を入力するAngularJS

小数点を追加してユーザーの書式設定を維持できるかどうか疑問に思ったので、2500.242,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 />

関連する問題