Backbone 的好处是它的灵活性,它不需要您严格遵守特定的架构。
所以一个视图触发一个事件是没有问题的,另一个视图直接响应这个事件而不改变模型上的任何东西。
但是,需要提出的问题是实现架构的最简洁方式是什么。
根据您所描述的情况,我认为,我会为两个视图使用全局事件对象来相互通信。
这是一些示例代码
var globalEvents = {};
_.extend(globalEvents, Backbone.Events);
var GlimpseView = Backbone.View.extend({
events: {
'click a.see-verbose': 'onSeeVerboseClick'
},
onSeeMoreClick: function() {
globalEvents.trigger('seeVerbose', this.model);
}
});
var VerboseView = Backbone.View.extend({
initiliaze: function() {
globalEvents.on('seeVerbose', onSeeVerbose, this);
},
onSeeVerbose: function(model) {
// code to render the verbose view
}
});