Важным аспектом работы JS каркаса является шина событий
Она предназначена для простого взаимодействия базового функционала с остальными скриптами, не привязываясь при этом к верстке.
Работает по принципу Pub/Sub (Издатель / Подписчик ) и построена на Deferred, что позволяет
Работа с шиной производится через объект Events
Отправка сообщения в шину.
Events( event_name ).publish( data );
event_name - имя события, к которое ожидают Подписчики
data - объект с данными, которые нужно передать
Подписка на событие
Events( event_name ).subscribe( function( data ){
// code
});
Возвращаемые данные
Любое событие возвращает объект, который содержит информацию о текущем состояния Издателя.
Пример
Корзина вернет свой состав и дополнительную информацию о скидке, доставке и пр.
Так же может содержать дополнительные поля, которые зависят от типа задач, которые были сделаны в Издателе.
Пример
После добавления товара в корзину, в ответе будет поле added, с информацией о добавленных товарах
Так же в ответе может быть дополнительное поле jqObj, в котором находится jQuery-объект элемента сайта.
Пример.
Пример обработчиков
В данном примере мы подписались на событие обновления корзины.
Мы создали два слушателя, каждый из которых выполняет свою часть работы.
Первый - обновляет информацию только в виджете корзины.
Второй - обновляет общую стоимость заказа на странице корзины. Важно учесть, что данная функция для большинства страниц магазина не нужна. Чтобы ее использовать только там, где она нужна, мы оборачиваем подписку данного слушателя в условие, и подключаем только на странице корзины.
Такое разделение функционала на несколько подписчиков дает