2013-03-05 65 views
4

我正在通過POST將對象提交給我們的API,然後轉換到顯示該對象的路由。 API修改POST中對象中的一個或多個字段,並在請求響應中返回更新的信息。如何強制ember-data在提交後刷新對象?

顯示的數據是來自POST之前的原始數據到我們的API。我可以從控制檯看到,ember-data從我們的API接收更新的信息。我如何強制燼來「刷新」對象,以便它顯示正確的信息?

回答

3

Matt。耶胡達·卡茨發佈到提供此功能的用戶回覆:

https://stackoverflow.com/a/14183507/506230

基本上你創建一個記錄,應用它,保存它,然後重新裝入。

saveMessage: function(text){ 
    var acct = Social.Account.find(this.get("id")), 
     msg = Social.store.createRecord(
        Social.Message, 
        { 
         text: text, 
         account: acct, 
         created: new Date() 
        } 
       ); 

    acct.get("messages").addObject(msg); 
    Social.store.commit(); 

    var timeoutID = window.setTimeout(function(){ 
     __msg.reload();__ 
     console.log('reloading'); 
    }, 250); 
} 
1

事實證明,燼實際上行爲正常,沒有額外的工作是必要的。問題是我在控制器上設置了一個與我的模型上的計算屬性名稱相同的變量。正在顯示控制器上變量的值而不是計算屬性。更改控制器變量的名稱解決了問題,無需任何其他代碼。