Вопрос кажется довольно старым, и данные ответы приятны. Однако есть еще одно альтернативное решение, которое также может помочь (которое я использую в своих проектах).
Это очень хорошо работает с префиксом символов валюты, а также с суффиксом числа для положительных и отрицательных значений.
Пользовательский фильтр:
angular.module('your-module', [])
.filter('nfcurrency', [ '$filter', '$locale', function ($filter, $locale) {
var currency = $filter('currency'), formats = $locale.NUMBER_FORMATS;
return function (amount, symbol) {
var value = currency(amount, symbol);
return value.replace(new RegExp('\\' + formats.DECIMAL_SEP + '\\d{2}'), '')
}
}])
Шаблон:
<div>{{yourPrice| nfcurrency}}</div>
Примеры для разных локалей:
- 10,00 (англ.-англ.) -> 10 фунтов стерлингов
- 20.00 (en-us) -> 20$
- -10.00 (en-us) -> (10$)
- 30.00 (день-день) -> 30 крон
- -30.00 (день-день) -> -30 крон
Пожалуйста, посмотрите демоверсию для долларов США и Датская крона.
Обновить
Обратите внимание, что этот обходной путь подходит для AngularJS 1.2 и более ранних выпусков библиотеки. Начиная с AngularJS 1.3, вы можете использовать форматер валюты. с третьим параметром, указывающим размер дроби - "Количество знаков после запятой для округления суммы".
Обратите внимание, что для использования формата валюты по умолчанию, полученного из локализации AngularJS, вам нужно будет использовать символ валюты (второй параметр), установленный на undefined
(null
или пусто НЕ будут работать). Пример в демонстрациях для долларов США и Датская крона.
person
Tom
schedule
08.07.2013