From 4e8a4bdebb46d6db9fbc279e1433aaef324bbab9 Mon Sep 17 00:00:00 2001 From: Rahul Doshi Date: Fri, 2 Aug 2013 12:20:14 -0700 Subject: [PATCH] feat(filter): currencyFilter takes number of decimals currencyFilter accepts second argument as number of decimal places --- src/ng/filter/filters.js | 6 ++++-- test/ng/filter/filtersSpec.js | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ng/filter/filters.js b/src/ng/filter/filters.js index 8afe2a0ffab5..b968b1b3d08f 100644 --- a/src/ng/filter/filters.js +++ b/src/ng/filter/filters.js @@ -37,6 +37,7 @@ input('amount').enter('-1234'); expect(binding('amount | currency')).toBe('($1,234.00)'); expect(binding('amount | currency:"USD$"')).toBe('(USD$1,234.00)'); + expect(binding('amount | currency:"$":0')).toBe('(USD$1,234)'); }); @@ -44,9 +45,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 598837994247..5102dc9bc09f 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,234'); });