Backbone.js 侦听在同级视图中激发的事件
我有一个包含两个子视图的视图,每个子视图都有自己的HTML模板 这对我现在拥有的一切都很好。但是,我现在需要一个事件从一个子视图激发到另一个子视图 例如,当用户在“编辑”视图中时,他们忘记单击某些内容(复选框、单选按钮或其他),然后返回到“显示”视图,我希望在该“显示”视图模板(html)中显示一条警告,警告他们错过的内容 这可能吗?在兄弟视图之间传递这样的事件 谢谢 以下是我现在拥有的基本代码结构: return.View.extend({Backbone.js 侦听在同级视图中激发的事件,backbone.js,backbone-views,backbone-events,Backbone.js,Backbone Views,Backbone Events,我有一个包含两个子视图的视图,每个子视图都有自己的HTML模板 这对我现在拥有的一切都很好。但是,我现在需要一个事件从一个子视图激发到另一个子视图 例如,当用户在“编辑”视图中时,他们忘记单击某些内容(复选框、单选按钮或其他),然后返回到“显示”视图,我希望在该“显示”视图模板(html)中显示一条警告,警告他们错过的内容 这可能吗?在兄弟视图之间传递这样的事件 谢谢 以下是我现在拥有的基本代码结构: return.View.extend({ 第一个视图的作用是什么?this.render(Di
第一个视图的作用是什么?
this.render(DisplayView);
我在EditView
中没有看到render
方法。我缺少什么吗?它只是有一个简单的呈现方法来显示html模板。我已经添加了它。您有this.render(…)
内部EditView
。this
关键字应该指向EditView
,而且它似乎没有render
方法。。。
render: function(SubView) {
SubView = SubView || DisplayView;
this.view = new SubView({
model: this.model
});
this.$el.html(this.view.render().$el);
return this;
}
})
var DisplayView = Backbone.View.extend({
render: function() {
this.$el.html(this.template(this.model.toJSON()));
})
var EditView = Backbone.View.extend ({
toggleDisplay: function () {
this.checkAllItems();
},
checkAllItems: function() {
if (this.$('.engineParts').val().length > 0) {
this.render(DisplayView);
} else {
this.$('.awarning').css('display', 'block'); //warning class in DisplayView template.
this.render(DisplayView);
}
}
})