2013-03-05 59 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

事实证明,烬实际上行为正常,没有额外的工作是必要的。问题是我在控制器上设置了一个与我的模型上的计算属性名称相同的变量。正在显示控制器上变量的值而不是计算属性。更改控制器变量的名称解决了问题,无需任何其他代码。