提交后如何强制ember-data刷新对象?

时间:2013-03-05 21:52:25

标签: ember.js ember-data

我通过POST向API提交一个对象,然后转换到显示该对象的路径。 API修改POST中对象中的一个或多个字段,并在请求响应中返回更新的信息。

显示的数据是从POST到我们的API之前的原始数据。我可以从控制台看到,ember-data正在从我们的API接收更新的信息。如何强制ember“刷新”对象以显示正确的信息?

2 个答案:

答案 0 :(得分:3)

马特。 Yehuda Katz向提供此功能的用户发布了回复:

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 :(得分:1)

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