gpt4 book ai didi

javascript - 如何在 Backbone 中克隆模型

转载 作者:行者123 更新时间:2023-12-03 02:48:18 25 4
gpt4 key购买 nike

我有一个可以通过某个 View 编辑的模型;但是,在 View 底部,用户应该可以选择保存或放弃所有更改。这意味着您需要存储要对模型进行的所有更改的列表,然后仅在单击“保存”按钮后才进行这些更改。这听起来不必要地复杂,我想出了一种替代方法的想法,即创建模型的克隆并在 View 中对其进行更改。然后,如果用户单击“保存”,则删除旧模型并将其集合中的新模型替换为新模型,否则您将丢弃克隆模型。

这是一种可以接受的方法,如果是这样,我该如何实现克隆过程?

这相当于再次从服务器获取数据(但额外的 HTTP 请求似乎没有必要)。

最佳答案

您可以使用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);
}
});

你也可以做一些不同的事情:

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);
}
});

关于javascript - 如何在 Backbone 中克隆模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17517028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com