我正在尝试为目标记录构建编辑功能。在目标索引页面上,每个目标旁边都有一个编辑按钮。单击时,每个字段都可以编辑。单击“保存”后,更改将保存到服务器。到现在为止还挺好。
还有一个取消按钮。当用户点击它时,我需要将模型的状态重置为更改之前的状态。控制器中的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