是否有更好的方法来返回 DS.Store#pushPayload
之后的记录叫做?这就是我正在做的...
var payload = { id: 1, title: "Example" }
store.pushPayload('post', payload);
return store.getById('post', payload.id);
但是,使用常规
DS.Store#push
你得到插入的记录返回。据我所知,两者之间的唯一区别是 DS.Store#pushPayload
使用正确的序列化程序序列化有效负载数据。
最佳答案
DS.Store#pushPayload
能够获取一组项目,而不仅仅是一个项目,并且可能包含侧载数据。它处理完整的有效负载并期望有效负载中的根 key :
{
"posts": [{
"id": 1,
"title": "title",
"comments": [1]
}],
"comments": [
//.. and so on ...
]
}
DS.Store#push
期望一个已规范化且不包含侧面加载数据的记录(注意没有根键):{
"id": 1,
"title": "title",
"comments": [1]
}
出于这个原因,
push
是有意义的。返回记录,但对于 pushPayload
什么都不回。当您使用
pushPayload
,第二次查找 store.find('post', 1)
(或 store.getById('post', 1)
)是要走的路,我不相信有更好的方法。
关于ember.js - 存储 pushPayload 调用后返回记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23210469/