Javascript BackboneJS重置模型

Javascript BackboneJS重置模型,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我有一个加载对话框的详细视图 此对话框有一个表单,用户可以在其中输入一些值(对应于我的模型属性) 我从详细信息视图传递模型,并在同一模型中设置值(在表单字段的更改操作中) 现在的问题是用户可以更改一些表单字段(更新我的模型值)并单击取消。但是,我希望模型返回到加载对话框时的初始状态。 (不完全是默认状态) 如何处理此问题?这是获取先前值的最佳选项 model.set(model.previousAttributes()); 使用model.previousAttributes()只能在最后一次

我有一个加载对话框的详细视图

此对话框有一个表单,用户可以在其中输入一些值(对应于我的模型属性)

我从详细信息视图传递模型,并在同一模型中设置值(在表单字段的更改操作中)

现在的问题是用户可以更改一些表单字段(更新我的模型值)并单击取消。但是,我希望模型返回到加载对话框时的初始状态。 (不完全是默认状态)


如何处理此问题?

这是获取先前值的最佳选项

model.set(model.previousAttributes());

使用
model.previousAttributes()
只能在最后一次调用
set
方法之前获取属性

您可以尝试在对话框启动前手动保存
状态
,并在用户改变主意时将其设置回原位

var state = this.model.toJSON();
...start up dialog...

...in case of cancel...
this.model.set(state);

我想您可以在视图初始化中将模型分配给临时变量。在取消操作时,执行this.model=temp并在视图初始化时绑定model change以呈现如下视图。model.On('change',this.render,this);你是说复制模型吗?因为可能仍然有ref…是的,您可以克隆模型,如果您想取消对原始模型所做的更改,请使用克隆的模型属性恢复到初始状态,并在模型更改时重新渲染视图。克隆只在视图初始化时进行表单提交时在模型上设置值如何?实际上,我需要在更改时进行验证…因此无法在保存时进行验证,因此我的模型中有多个属性…所有属性都会恢复吗?是的。它将还原所有更改的属性。