emberjs:如何恢复通过输入字段进行的模型属性更改

时间:2014-02-07 20:19:05

标签: javascript ember.js ember-data

我正在使用http://emberjs.com/guides/getting-started/toggle-todo-editing-state/

中描述的编辑位置进行播放

我想出的解决方案是在编辑之前保存模型的值,然后在编辑完成后,决定恢复它是否按下取消。

这是jsbin http://emberjs.jsbin.com/hesib/1/edit,我担心它不是那么好和惯用。

你怎么说?

1 个答案:

答案 0 :(得分:1)

我不太确定你想要达到的目标。

如果您想立即将整个模型恢复到最后一个提交状态,那么您应该使用this.rollback()。但请注意,this.rollback将通过this.save()恢复到上次提交的状态,无论是否保存为false。有关this.rollback的预期行为的详细信息:http://discuss.emberjs.com/t/expected-behaviour-of-rollback-after-save-attempt-returns-422-ember-data-1-0/2513

如果您想要恢复一个属性的功能,我建议您不要更改原始模型,而是使用视图:创建一个存储模型值的临时对象,为此临时模型实现编辑和恢复功能,如果要保存更改,请将更新的值推送到控制器,在那里更新模型并保存。

如果您想保存模型并继续编辑,可以使用保存,但保持视图处于编辑模式。