强制重新加载Ember中的脏/无效模型

时间:2013-12-17 18:40:14

标签: ember.js ember-data

我正在尝试为目标记录构建编辑功能。在目标索引页面上,每个目标旁边都有一个编辑按钮。单击时,每个字段都可以编辑。单击“保存”后,更改将保存到服务器。到现在为止还挺好。

还有一个取消按钮。当用户点击它时,我需要将模型的状态重置为更改之前的状态。控制器中的goal.rollback()可以正常工作。但是,如果用户已单击“保存”但服务器端验证失败。在这种情况下,尝试rollback()会抛出Uncaught Error: Attempted to handle event `reloadRecord` on <App.Goal:ember123:1234> while in state root.loaded.updated.invalid.

如果我尝试goal.reloadRecord,我会Uncaught Error: Attempted to handle event `reloadRecord` on <App.Goal:ember123:1234> while in state root.loaded.updated.invalid.

goal.unloadRecord相同的交易。我试过像这样按摩状态:

state = goal.get('currentState') #this code makes me sad.
state.isValid = true
state.isError = false

就像这样:

goal.transitionTo('loaded.saved')

无济于事。对我来说没有意义,重新加载或卸载记录应该是有状态的。

非常感谢任何帮助。再一次,我试图在ember中获取一个脏的,无效的记录,并通过回滚更改或者只是从服务器重新加载来恢复它。

编辑:Ember-data v1.0.0-beta.3-4-g169793e,ember Version:1.1.2

1 个答案:

答案 0 :(得分:0)

这是一个工作示例,更改颜色然后点击保存。

http://emberjs.jsbin.com/OxIDiVU/44/edit

PR提交了https://github.com/emberjs/data/pull/1590