ember-data,在rootState.error中重新加载模型

时间:2013-05-13 22:19:18

标签: ember.js ember-data

我有一个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.

从服务器重新加载模型的正确方法是什么?

1 个答案:

答案 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