Jos*_*ick 22 javascript clone backbone.js
我有一个可以通过某个视图编辑的模型; 但是,在视图的底部,用户应该选择保存或放弃所有更改.这意味着您需要存储要对模型进行的所有更改的列表,然后仅在单击"保存"按钮后进行更改.这听起来不必要地复杂,我想出了另一种方法,即创建模型的克隆并对视图中的模型进行更改.然后,如果用户单击"保存",则删除旧模型并将其替换为新模型,否则将丢弃克隆模型.
这是一种可接受的方法,如果是这样,我该如何实现克隆过程?
这相当于再次从服务器获取数据(但似乎没有额外的HTTP请求).
kal*_*ley 28
你可以使用这个clone方法.以下简短示例:
var Model = Backbone.Model.extend({});
var View = Backbone.View.extend({
initialize: function() {
this.realModel = this.model;
this.model = this.realModel.clone();
},
onSave: function() {
this.realModel.set(this.model.attributes);
}
});
Run Code Online (Sandbox Code Playgroud)
你也可以做一些不同的事情:
var Model = Backbone.Model.extend({});
var View = Backbone.View.extend({
initialize: function() {
// save the attributes up front, removing references
this._modelAttributes = _.extend({}, this.model.attributes);
},
onSave: function() {
// revert to initial state.
this.model.set(this._modelAttributes);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19229 次 |
| 最近记录: |