JS библиотека

Вся работа с Javascript при разработке темы под InSales выполняется через бибилиотеку newcommon.js

Подключение библиотеки 

Для работы с библиотекой необходимо прописать настройку в settings_data.json и создать config сниппет.

В settings_data.json нужно добавить свойство: "common_js_version": "v2";

Файл settings_data.json не доступен через бэк-офис, поэтому новое свойство нужно добавлять вручную через скачивание темы и последующей установке с новыми параметрами. 

В качестве имени сниппета следует использовать имя «insales_config.liquid»

В нем будет содержаться:

  • Объявление базовых переменных с данными взятыми из liquid.

Любую работу и настройку с библиотекой рекомендуется производить в данном сниппете.

Содержимое сниппета:

<!-- Объявление базовых переменных с данными взятыми из liquid -->

<script>
  Shop.money.set('{{ money_with_currency_format }}');

  Site.client_group = {
    id: '{{ client_group.id }}',
    title: '{{ client_group.title }}',
    discount: '{{ client_group.discount }}',
    discount_description: '{{ client_group.discount_description }}',
  };

  Site.template = '{{ template }}';
  Site.locale = '{{ language.locale }}';

  Site.language = {
    locale: '{{ language.locale }}',
    not_default: {{ language.not_default? }},
  };

  Site.account = {
    id: '{{ account.id }}',
    hide_items: '{{ account.hide_items_out_of_stock }}',
    email: '{{ account.email }}',
  };
</script>

Event Bus — шина событий

Она предназначена для простого взаимодействия базового функционала с остальными скриптами, не привязываясь при этом к верстке и вспомогательным объектам.

Работает по принципу Pub/Sub (Издатель/Подписчик) и построена на Deferred, что позволяет:

  • привязать к одному событию (Издателю) несколько обработчиков (Подписчиков)
  • обработчики событий сработают, даже если событие произошло раньше того, как мы к нему привязали обработчик.
  • не важен порядок объявления Издателя и Подпсичиков

Работа с шиной производится через объект EventBus.

 

Шаблонизатор JS

 

Полезная статья?
Остались вопросы?
Отправь тикет в техподдержку!
Недавно просмотренные статьи