2015-10-20 2 views
2

В Javascript, чтобы сделать форматирование на основе локали той или иной валюты, вывалюты форматирования в Clojurescript

(550.753).toLocaleString(undefined, {style: 'currency', currency: 'USD'}) 
// # $550.75 in en-US 

Как вы сделать то же самое в Clojurescript?

Я попытался

(.toLocaleString 550.753 nil {:style "currency" :currency "USD"}) 

безрезультатно.

ответ

3

Запуск вашего образца JS, я получаю Uncaught TypeError: Cannot convert undefined or null to object(…), потому что вы проходите null в качестве локали. Такая же ошибка возникает и в ClojureScript. toLocaleString требует, чтобы вы передали ему локаль.

Крепление это обеспечить de-DE локаль:

JavaScript:

(550.753).toLocaleString('de-DE', {style: 'currency', currency: 'EUR'}) 
// "550,75 €" 

ClojureScript:

(.toLocaleString 550.753 "de-DE" #js {:style "currency" :currency "USD"}) 
;; "550,75 $" 

#js используется для преобразования карты ClojureScript в объект JavaScript.

Если вы хотите использовать стандартную локаль вместо этого, перейдите либо #js [], либо js/undefined.

+0

Благодарим вас за ответ. Мне интересно, есть ли способ определения неопределенного значения для локали. В другом JS я написал (ориентированный на Firefox), который предназначен для агностики локали, указав неопределенные для языкового стандарта, что используется локаль браузера. Возможно ли это в Clojurescript? – wegry

+1

'(.toLocaleString 550.753 js/undefined #js {: style" currency ": currency" USD "})' это то, что я искал. – wegry

+1

Глядя на https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument, вам, вероятно, будет лучше пропустить '[]', если вы хотите использовать стандартную локаль , –

Смежные вопросы