Внешние переменные в форме-калькуляторе

Иногда в форме-калькуляторе нужно использовать внешние переменные.

Например, курс рубля к доллару. Мы будем загружать его AJAX-запросом и записывать в переменную rub2usd.

Формула в калькуляторе

В самом калькуляторе в формуле используем код (window.rub2usd || 0.0141126471).

Внешняя переменная в формуле

Обязательно указывать именно window.rub2usd, а не rub2usd, иначе в коде будет ошибка.

Значение 0.0141126471 является «‎запасным», оно нужно, чтобы формула работала исправно в следующих случаях:

  1. В редакторе, где нет переменной rub2usd.
  2. В публикации, пока настоящий курс не загружен, и переменная еще не создана.
  3. В публикации, на случай если внешняя переменная не будет создана по той или иной причине.

Обновление переменной

В настройках формы нужно указать ID my-form, или любой другой (и в коде поменять), чтобы по нему потом обращаться к форме.

Код обновления переменной:

<script>
// Запрашиваем курс валют к рублю
$.get('https://api.exchangeratesapi.io/latest?base=RUB').then(function (data) {
// Записываем курс доллара в переменную
window.rub2usd = data.rates.USD;
// Вызываем пересчет калькулятора
cr.api(function (page) {
page.getComponent('my-form').recalculate();
});
})
</script>

Рабочий пример можно посмотреть по ссылке.