diff --git a/src/global/money/money.js b/src/global/money/money.js index 57979768..55412d39 100644 --- a/src/global/money/money.js +++ b/src/global/money/money.js @@ -26,7 +26,7 @@ function MoneyMaskDirective($locale, $parse, PreFormatters) { if (isNaN(decimals)) { decimals = 2; } - + decimals = parseInt(decimals); var moneyMask = maskFactory(decimals); function formatter(value) { @@ -73,6 +73,7 @@ function MoneyMaskDirective($locale, $parse, PreFormatters) { if (attrs.uiMoneyMask) { scope.$watch(attrs.uiMoneyMask, function(_decimals) { decimals = isNaN(_decimals) ? 2 : _decimals; + decimals = parseInt(decimals); moneyMask = maskFactory(decimals); parser(ctrl.$viewValue); diff --git a/src/global/money/money.test.js b/src/global/money/money.test.js index 2f91f3c7..7f5ab611 100644 --- a/src/global/money/money.test.js +++ b/src/global/money/money.test.js @@ -67,6 +67,19 @@ describe('ui-money-mask', function() { expect(model.$viewValue).toBe('$ 3,456.79'); })); + it('shold allow string as definition of decimals', angular.mock.inject(function($rootScope) { + var input = TestUtil.compile('', { + model: '3456.79', + decimals: "2" + }); + + var model = input.controller('ngModel'); + expect(model.$viewValue).toBe('$ 3,456.79'); + $rootScope.decimals = "3"; + $rootScope.$digest(); + expect(model.$viewValue).toBe('$ 345.679'); + })); + it('should validate minimum value', function() { var input = TestUtil.compile('', { model: '3456.79'