Backbone.js - привязка из одного вида в другой? - PullRequest
5 голосов
/ 03 августа 2011

У меня есть основной вид приложения с меню фильтра в шапке. Когда она нажата, я хочу фильтровать контент в отдельном представлении новостной ленты. Но я не знаю, как связать события (и передать данные класса) от кликов в одном представлении функции в другом.

Как мне это сделать?

Ответы [ 2 ]

16 голосов
/ 03 августа 2011

Есть несколько способов сделать это, но, возможно, вы захотите создать объект модели, который будет разделен между двумя представлениями. Затем нажмите кнопку «клик» в представлении 1, обновите объект модели и свяжите «при изменении» в представлении 2 с объектом модели.

По сути, вы можете настроить оба вида так, чтобы они синхронизировались с объектом модели, и любые изменения объекта приведут к изменениям вида.

2 голосов
/ 03 августа 2011

Все в Backbone наследуется от Backbone.Events, поэтому вы можете запускать и связывать события из любого места ( документы для Backbone.Events ):

var View1 = Backbone.View.extend();

var View2 = Backbone.View.extend({
    eventHandler: function(data) {alert(data)}
});

var v1 = new View1;
var v2 = new View2;

v1.bind('hello-world-event', v2.eventHandler)
v1.trigger('hello-world-event', 'Hello World!')

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

...