2013-05-13 73 views
1

我有灰燼模型,它看起來是這樣的(在咖啡腳本)燼數據,在rootState.error刷新模型

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. 

什麼是從服務器重新加載模型的正確方法?

回答

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') 

這似乎有點凌亂得到一個模型出一個錯誤的狀態。一旦燼數據得到進一步處理,可能會有更漂亮的方法來執行此操作,因此請檢查文檔。

我應該指出,如果你想嘗試,並重新作出更改,可以改爲使用這些

@get('stateManager').transitionTo('loaded.created.uncommitted') # New Models 
@get('stateManager').transitionTo('loaded.updated')    # Updated models 
+0

感謝這解決了我的問題之一! – lesyk 2013-06-12 10:34:51