Подтвердить что ты не робот

Запускать событие с одного взгляда на другое в позвоночнике

У меня есть основной вид, и внутри этого основного представления у меня есть другое представление, которое создается, когда я нажимаю кнопку. Есть ли способ прослушать пользовательское событие в родительском представлении для события, которое запускается из дочернего представления. Я попытался сделать это через свойство el, используя jQuery trigger, но это не совсем сработало.

4b9b3361

Ответ 1

Ya, не проблема... вы захотите использовать шаблон "Накопитель событий". Это 1 строка кода в макете:

var eventAgg = _.extend({}, Backbone.Events);

Теперь вы можете запускать/связывать события с этого объекта, повсюду в вашем приложении, и иметь разные части вашего приложения, обмениваться друг с другом раздельно.

Я использую это LOT!

Я также подробно рассказывал об этом здесь: http://lostechies.com/derickbailey/2011/07/19/references-routing-and-the-event-aggregator-coordinating-views-in-backbone-js/

Ответ 2

Вот еще один подход, который может быть более интуитивным для людей, которые ищут простой способ "пузырить" события от дочернего представления к родительскому представлению:

https://github.com/dgbeck/backbone.courier

В readme обсуждается, как он сравнивается с агрегаторами событий.

Ответ 3

Перемещение вашего собственного "агрегатора событий" или медиатора или pubsub (как это легко описано выше) не требуется, поскольку Backbone смешивает объект Events непосредственно с объектом Backbone в своем пространстве имен. Здесь ссылка к исходному коду и их документации по реализации.

Разрешить объекту Backbone служить глобальной шиной событий для людей, которые хотят иметь глобальный "pubsub" в удобном месте.