diff --git a/src/ng/filter/filters.js b/src/ng/filter/filters.js index 62d73c16c46a..4a470118066b 100644 --- a/src/ng/filter/filters.js +++ b/src/ng/filter/filters.js @@ -11,6 +11,7 @@ * * @param {number} amount Input to filter. * @param {string=} symbol Currency symbol or identifier to be displayed. + * @param {number=} fractionSize Number of decimal places to round the amount to. * @returns {string} Formatted number. * * @@ -26,12 +27,14 @@
default currency symbol ($): {{amount | currency}}
custom currency identifier (USD$): {{amount | currency:"USD$"}} + no fractions (0): {{amount | currency:"USD$":0}} it('should init with 1234.56', function() { expect(element(by.id('currency-default')).getText()).toBe('$1,234.56'); expect(element(by.binding('amount | currency:"USD$"')).getText()).toBe('USD$1,234.56'); + expect(element(by.binding('amount | currency:"USD$":0')).getText()).toBe('USD$1,235'); }); it('should update', function() { if (browser.params.browser == 'safari') { @@ -43,6 +46,7 @@ element(by.model('amount')).sendKeys('-1234'); expect(element(by.id('currency-default')).getText()).toBe('($1,234.00)'); expect(element(by.binding('amount | currency:"USD$"')).getText()).toBe('(USD$1,234.00)'); + expect(element(by.binding('amount | currency:"USD$":0')).getText()).toBe('(USD$1,234)'); }); @@ -50,9 +54,10 @@ currencyFilter.$inject = ['$locale']; function currencyFilter($locale) { var formats = $locale.NUMBER_FORMATS; - return function(amount, currencySymbol){ + return function(amount, currencySymbol, fractionSize){ if (isUndefined(currencySymbol)) currencySymbol = formats.CURRENCY_SYM; - return formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, 2). + if (isUndefined(fractionSize) || isNaN(fractionSize)) fractionSize = 2; + return formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, fractionSize). replace(/\u00A4/g, currencySymbol); }; } diff --git a/test/ng/filter/filtersSpec.js b/test/ng/filter/filtersSpec.js index b99f65e12afa..0a8c5401fe6d 100644 --- a/test/ng/filter/filtersSpec.js +++ b/test/ng/filter/filtersSpec.js @@ -95,6 +95,7 @@ describe('filters', function() { expect(currency(0)).toEqual('$0.00'); expect(currency(-999)).toEqual('($999.00)'); expect(currency(1234.5678, "USD$")).toEqual('USD$1,234.57'); + expect(currency(1234.5678, "USD$", 0)).toEqual('USD$1,235'); });