我以为我读过你可以有一个视图调用另一个这样的视图:
查看1
window.View1 = Backbone.View.extend({
initialize: function () {
this.render();
},
render: function () {
$(this.el).html(this.template(this.model.toJSON()));
return this;
},
events: {
"click .start" : "start"
},
start: function () {
var StartView = new View2({model: this.model});
}
})
查看2
window.View2 = Backbone.View.extend({
initialize: function () {
this.render();
},
events: {
"click .nextstage" : "nextstage"
},
nextstage: function () {
alert('NEXT STAGE COMING UP');
},
render: function () {
$("#content").html(this.template(this.model.toJSON()));
return this;
}
});
所以路由器为我设置了第一个视图,然后点击“开始”,它就会让我查看2.然后我想点击下一个阶段,并根据点击进行View 2方法触发....但它不会开火。有什么想法吗?
答案 0 :(得分:1)
View2
呈现给#content
,并且根据您的代码#content
不是视图的元素(el
)。由于events
属性等待视图el
内发生的事件,因此无效。
尝试
// View 1
start: function () {
var StartView = new View2({model: this.model, el: $('#content')});
}
...
// View 2
render: function () {
this.$el.html(this.template(this.model.toJSON()));
return this;
}