-
Notifications
You must be signed in to change notification settings - Fork 7
Конвертер валют
В виджете поиска авиабилетов и отелей реализована возможность динамически, без перезагрузки страницы, изменять валюту цен авиабилетов и производить соответствующие конвертации.
Курсы валют передаются в приложение через 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) и будет использован при перезагрузке страницы.