我正在使用http://emberjs.com/guides/getting-started/toggle-todo-editing-state/
中描述的编辑位置进行播放我想出的解决方案是在编辑之前保存模型的值,然后在编辑完成后,决定恢复它是否按下取消。
这是jsbin http://emberjs.jsbin.com/hesib/1/edit,我担心它不是那么好和惯用。
你怎么说?
答案 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
如果您想要恢复一个属性的功能,我建议您不要更改原始模型,而是使用视图:创建一个存储模型值的临时对象,为此临时模型实现编辑和恢复功能,如果要保存更改,请将更新的值推送到控制器,在那里更新模型并保存。
如果您想保存模型并继续编辑,可以使用保存,但保持视图处于编辑模式。