【发布时间】:2013-12-17 18:40:14
【问题描述】:
我正在尝试为目标记录构建编辑功能。在目标索引页面上,每个目标旁边都有一个编辑按钮。单击后,每个字段都变为可编辑的。单击保存后,更改将保存到服务器。到现在为止还挺好。
还有一个取消按钮。当用户单击它时,我需要将模型的状态重置为他们更改之前的状态。控制器中的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 版本:1.1.2
【问题讨论】:
-
在我出现保存错误后,回滚似乎正在工作,您使用的是 Ember Data 吗?如果有,是哪个版本?
-
Ember-data v1.0.0-beta.3-4-g169793e,ember 版本:1.1.2。
-
明白了,我添加了一个工作示例,有什么不同吗?
标签: ember.js ember-data