3
好吧,我有一个父视图,它有一个呈现子视图的单击事件。在这个子视图内是一个我试图验证然后提交的表单。所以我父视图看起来是这样的:骨干嵌套视图有没有触发的事件
var MapView = Backbone.View.extend({
el: '.body',
template: _.template(MapTemplate),
render: function() {
...
},
events: {
'click #log-pane-title': 'loadLogView'
},
loadLogView: function() {
var eventLogView = new EventLogView({
id: properties._id
});
eventLogView.render();
}
});
我的子视图看起来是这样的:
var EventLogView = Backbone.View.extend({
el: '#eventlog',
logform: new NewLogForm({
template: _.template(AddLogTemplate),
model: new LogModel()
}).render(),
render: function() {
// Render the form
$("#addtolog").html(this.logform.el);
},
events: {
'submit #addlogentry': 'test'
},
test: function() {
alert('inside eventlogview');
return false;
}
});
我现在面临的问题是,test()
永远不会触发。出于调试目的,我确信提交事件甚至被解雇通过将:
$('#addlogentry').on('submit', function() {
alert("submit firing");
return false;
});
在EventLogView
的render()
。这实际上触发,所以我不知道发生了什么,为什么test()
不触发。
骨干事件被限定在欣赏到El。那么你的'#addlogentry'是否在你的'EventLogView'“视图”中?所以在你的情况下,适当的测试将是:'this。$ el.on('submit','#addlogentry',function(){' – nemesv
@nemesv就是这样!发布这个答案,我会接受。 谢谢! –