我有一个ember模型,它看起来像这样(在咖啡脚本中)
App.User = DS.Model.extend
name: DS.attr('string')
age: DS.attr('number)
becameError: ->
#F it, i give up, reload
@reload()
只有当我致电this.reload()
时,我才会
Error: Attempted to handle event `reloadRecord` on <App.User:ember255:1> while in state rootState.error.
从服务器重新加载模型的正确方法是什么?
答案 0 :(得分:4)
如果您希望模型在服务器进入错误状态时从服务器重新加载,您的模型定义应如下所示。
App.User = DS.Model.extend
name: DS.attr('string')
age: DS.attr('number)
becameError: ->
#F it, i give up, reload
@get('stateManager').transitionTo('loaded.saved')
@reload()
关键是
@get('stateManager')transtionTo('loaded.saved')
从错误状态中获取模型似乎有点混乱。一旦ember-data进一步发展,可能会有一个更漂亮的方法,所以检查文档。
我应该提一下,如果你想尝试重新发送你的更改,你可以使用其中一个
@get('stateManager').transitionTo('loaded.created.uncommitted') # New Models
@get('stateManager').transitionTo('loaded.updated') # Updated models