我的简单表单模板是这样的
<script type="text/template" id="template">
<form id="myForm " >
<fieldset>
<label>Name</label>
<input type="text" id="name" name="name" />
<label>Age</label>
<input type="text" id="age" name="age" />
<input type="hidden" id="id" name="id"/>
</fieldset>
<a id="save" disabled >Save Changes</a>
我的 bakbone 视图如下:
myView = Backbone.View.extend({
template: _.template( $("#template").html() ),
events: {
"click #save" : "save",
},
bindings: {
'#id': 'id',
'#name': 'name',
'#age': 'age'
},
initialize: function () {
if(this.model){
this.model.fetch();
}
this.listenTo(this.model, 'all', this.render);
},
render: function () {
this.$el.html( this.template );
this.stickit(); //used library http://nytimes.github.io/backbone.stickit/
},
save: function() {
//how to do following
//save model
//if success, reset form to new value
//if error, do not reset form and alert there is error in saving
}
}
我的视图从这里初始化
RegionManager.show(new app.myView({
model : new app.myModel(
{id: 1})
}));
在这里,我的表格成功地显示了带有姓名和年龄字段的表格。它们 以禁用保存的形式显示。这里表格被禁用。现在,当用户更改任何值时,它应该立即检测到并且应该启用保存按钮,并且应该看起来像这个表单 save enabled。只要用户将 y 附加到 mickey,就会启用此处的保存。现在,当用户单击保存时,如果成功则应保存,否则应提示错误。如果成功,它应该显示更新的表格。
我是骨干新手,并试图找出上述两种解决方案。