Thousands Formatter directive
format input field for currency, but leave model value as regular input.
HTML
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script>
<div ng-app='myApp'>
<div ng-controller="myCtrl">
<input ng-model="numba" num ></input>
{{numba}}
</div>
</div>
JavaScript
var myApp = angular.module('myApp', []);
function myCtrl($scope) {
$scope.numba = 1500.90;
}
myApp.directive('num', function ($filter) {
var precision = 3;
return {
require: 'ngModel',
link: function (scope, element, attrs, ctrl) {
ctrl.$formatters.push(function (data) {
var formatted = $filter('number')(data, 0);
return formatted.replace(',','.'); //converted
});
ctrl.$parsers.push(function (data) {
var plainNumber = data.replace(/[^\d|\-+|\+]/g, '');
var formatted = $filter('number')(plainNumber, 0);
element.val(formatted);
alert(element.val());
var final = Number(plainNumber);
plainNumber = plainNumber.replace(',','.');
return Number(plainNumber);
});
}
};
});