Полный цикл в digital

Передача данных из компонента в js, BX.message в BX

По сути файл script.js подключается после template.php, поэтому для передачи в него каких-то данных, мы можем задать глобальную переменную, например в объекте window :

template.php<script>window.var = 123;</script>

Далее в script.js получить значение из window.var, но это неправильный метод загрязняющий глобальный объект.

В 1С Битрикс, правильно использовать встроенный объект BX.message. Для примера, передадим в script.js путь к папке шаблона компонена, для этого в файле шаблона template.php, прописываем:

template.php<script>
BX.message({
    TEMPLATE_PATH: '<? echo $this->GetFolder(); ?>'
});
</script>

В файле script.js можем этот путь получить:

script.jslet folderPath = BX.message('TEMPLATE_PATH');

Передача языковых фраз в JS

Сначала считаем языковые фразы в переменную и передаем в объект BX:

template.php$messages = Loc::loadLanguageFile(__FILE__);
BX.message(<?=CUtil::PhpToJSObject($messages)?>);

Для передачи всех языковых фраз шаблона в JS, можно воспользоваться такой структурой:

template.php<php>
use \Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);
$messages = Loc::loadLanguageFile(__FILE__);
</php>
<script>
BX.message(<?=CUtil::PhpToJSObject($messages)?>);
</script>
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!