我通过POST向API提交一个对象,然后转换到显示该对象的路径。 API修改POST中对象中的一个或多个字段,并在请求响应中返回更新的信息。
显示的数据是从POST到我们的API之前的原始数据。我可以从控制台看到,ember-data正在从我们的API接收更新的信息。如何强制ember“刷新”对象以显示正确的信息?
答案 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)
事实证明,余烬实际上表现得很好,不需要额外的工作。问题是我在控制器上设置了一个变量,其名称与模型上的计算属性相同。显示控制器上变量的值而不是计算属性。更改控制器变量的名称解决了问题,无需任何其他代码。