Я думаю, вы могли бы сделать это двумя способами.Сначала передайте родительский элемент в дочерний вид.Во-вторых, создайте eventAggregator, который обрабатывает запуск событий.
FIRST:
Вы можете передать appView в previewDataView в качестве параметров.
preview = new previewDataView({ // your options, 'parent':this });
В вашем previewDataView вы быпривязать к родительскому настраиваемому событию следующим образом:
this.parent = this.options.parent;
this.parent.bind('eventName', this.onEvent, this);
ВТОРОЕ: (только что изучил эту технику)
Вы можете создать eventAggregator, который поможет вашим представлениям подписываться и отписываться для событий, предназначенных для каждогоДругой.Вот хороший ответ, который подробно объясняет это в стеке: запускает событие из одного представления в другое в магистрали
В комментариях @Brian Genisio делает еще один шаг, чтобы включить этов его коде:
Backbone.View.prototype.eventAggregator = _.extend({}, Backbone.Events);
Запустите этот запуск в начале вашего кода, и у каждого представления будет доступ к eventAggregator, который будет вашим центральным узлом для событий, которые необходимо инициировать и получать между представлениями.Вы бы использовали это так:
// Parent View
this.eventAggregator.trigger('someEvent');
// Child View
this.eventAggregator.bind('someEvent', this.function, this);
При этом вам не нужно явно передавать ссылку между представлениями, которым нужен доступ друг к другу для запуска событий и прослушивания.Этот метод очень удобен для меня.: -)