Skip to content

Конвертер валют

Paul Naumov edited this page Jun 2, 2017 · 2 revisions

В виджете поиска авиабилетов и отелей реализована возможность динамически, без перезагрузки страницы, изменять валюту цен авиабилетов и производить соответствующие конвертации.

Курсы валют

Курсы валют передаются в приложение через knockout-binding moneyInit.

Пример инициализирующего кода:

<div class="nemo-root nemo-widget nemo-widget_flights js-nemoApp" data-bind="moneyInit: currency_rates_object">
    <!-- ko if: component() -->
        <div style="display: none;">
            <div class="" data-bind="component: {
                name: component,
                params: {
                    route: componentRoute(),
                    additional: componentAdditionalParams()
                }
            }">
                <div class="nemo-common-appLoader"></div>
	</div>
    </div>
<!-- /ko -->
</div>

Где currency_rates_object — javascript-объект, содержащий курсы валют относительно одной из валют.

Пример объекта:

{
    RUB: "1",
    GBP: "0.013845908880074", 
    USD: "0.016975075496648", 
    EUR: "0.016132935387594"
}

Также, курсы валют можно получить отправив запрос на адрес dataURL/api/system/info/currencyRates (где dataURL — URL адрес из объекта options, указанный при инициализации виджета) и сформировать нужный объект вручную из полученных курсов. В таком случае, курсы будут составлены относительно валюты агентства, привязанного к домену, на который совершался запрос.

Конвертация

Конвертация валют запускается при вызове события cc:changeCurrency на объекте document, с передачей в событие объекта, содержащего код валюты, в которую мы хотим конвертировать цены. Вызывать это событие можно любым удобным способом, например, с помощью jQuery:

$(document).trigger('cc:changeCurrency', { currency: 'USD' });

Переданный код валюты будет сохранён в cookies (ccCurrency) и будет использован при перезагрузке страницы.

Clone this wiki locally