Skip to content

Instantly share code, notes, and snippets.

@Maqsim
Created February 24, 2014 13:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Maqsim/9188504 to your computer and use it in GitHub Desktop.
Save Maqsim/9188504 to your computer and use it in GitHub Desktop.
.directive("currencyInput", ['$filter', '$timeout', function ($filter, $timeout) {
return {
replace: false,
restrict: "A",
require: "?ngModel",
link: function (scope, element, attrs, ngModel) {
if (!ngModel) {
return;
}
/**
* Handlers
*/
element.on('focus', function () {
ngModel.$viewValue = ngModel.$modelValue;
ngModel.$render();
});
element.on('blur', function () {
var filteredValue = $filter('currency')(ngModel.$modelValue);
if (filteredValue) {
ngModel.$viewValue = filteredValue;
ngModel.$render();
}
});
ngModel.$render = function () {
element.val(ngModel.$viewValue);
};
ngModel.$parsers.unshift(function(value) {
ngModel.$setValidity('$invalid', !!$filter('currency')(value));
return value;
});
/**
* Init
*/
$timeout(function () {
element.trigger('blur');
});
}
};
}])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment