我有一個簡單的待辦事項列表,並且所有內容都按照預期呈現,但是當我在編輯表單中單擊提交按鈕時,表單被提交(GET/todo_items),並且頁面被重新加載,只顯示編輯表單。 「提交表單」事件沒有受到約束,我不明白爲什麼。我錯過了什麼?Backbone.js:爲什麼不綁定這個事件?
App.Views.Edit = Backbone.View.extend({
events: {
"submit form": "save"
},
initialize: function(){
this.render();
},
save: function(){
var self = this;
var msg = this.model.isNew() ? 'Successfully created!' : 'Saved!';
this.model.save({
title: this.$('[name=title]').val(),
success: function(model, resp){
console.log('good');
new App.Views.Notice({message: msg});
self.model = model;
self.render();
self.delegateEvents();
Backbone.history.saveLocation('todo_items/'+ model.id);
$('#edit_area').html('');
},
error: function(){
console.log('bad');
new App.Views.Error();
}
});
return false;
},
render: function(){
$('#edit_area').html(ich.edit_form(this.model.toJSON()));
}
});
這裏的編輯表單:
<script id="edit_form" type="text/html">
<form>
<label for="title">Title:</label>
<input name="title" type="text" value="{{title}}" />
<button>Save</button>
</form>
</script>
你能澄清/發佈你的答案嗎?謝謝! – Matt 2011-02-06 08:49:49
在你的其他帖子上看到我的回答 - http://stackoverflow.com/questions/5624929/backbone-view-el-confusion/5757160#5757160 – LeRoy 2011-04-22 15:52:29