Angular Currency Format
This project is module for AngularJS. It provides:
- A service (factory) that retrieves currency information (name, symbol, fraction and formating) according to ISO 4217 currency codes
- A filter to print formatted currency (-100 USD -> -$100.00)
Installation
This library is available with the bower package manager, you can either:
-
Execute the following command:
bower install angular-currency-format
-
Add
'currencyFormat'
to your angular.module dependency, usually in app.js
angular;
Demo
https://livedemo.xsolla.com/angular-currency-format/
Usage
Factory
In the factory there are two methods that return information about the currencies.
// Declare the factory as dependencyangular ;
Information about currencies is an object which has the structure:
'AMD': // ISO 4217 currency code. 'name': 'Armenian Dram' // Currency name. 'fractionSize': 2 // Fraction size, a number of decimal places. 'symbol': // Currency symbol information. 'grapheme': 'դր.' // Currency symbol. 'template': '1 $' // Template showing where the currency symbol should be located // (before or after amount). 'rtl': false // Writing direction. 'uniqSymbol': // Alternative currency symbol information. We recommend to use it // when you want to exclude a repetition of symbols in different // currencies. 'grapheme': 'դր.' // Alternative currency symbol. 'template': '1 $' // Template showing where the alternative currency symbol should be // located (before or after amount). 'rtl': false // Writing direction. ...
Symbol/uniqSymbol field is null
, when the currency has no symbol/alternative symbol.
Information about languages is an object which has the structure:
"en_US": // Locale ID "decimal": "." // Decimal delimiter "thousands": "," // Thousands delimiter ...
Filter
Instead of directly using the currency symbol, you only need the 3 char long currency code (e.g. USD or JPY). It will take the right symbol, format and fraction size. The fraction can be set up by providing a number of decimal places after the currency field:
// in controller$scopeamount = -123456;$scopeisoCode = 'USD';$rootScopecurrencyLanguage = 'en_US'; // Can be set through the parameter of the filter. Default 'en_US'. // in template amount | currencyFormat:isoCode // -$1,234.56 amount | currencyFormat:isoCode:0 // -$1,235 amount | currencyFormat:'RUR':null:true:'ru_RU' // -1 234,56 ₽
If there is no currency symbol, then the filter will return the value in the following format: formated amount + ISO code. For example -1,234.56 USD
.
Currency reference
The component uses the JSON with currencies and languages information from https://github.com/xsolla/currency-format.
The list of currency codes was taken from https://en.wikipedia.org/wiki/ISO_4217.
License
The MIT License.
See LICENSE