Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 在store pushPayload调用后返回记录_Ember.js_Ember Data - Fatal编程技术网

Ember.js 在store pushPayload调用后返回记录

Ember.js 在store pushPayload调用后返回记录,ember.js,ember-data,Ember.js,Ember Data,调用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
后,是否有更好的方法返回记录?这就是我正在做的

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
能够获取一个项目数组,而不仅仅是一个,并且可能包含侧面加载的数据。它处理完整的负载,并期望负载中有根密钥:

{
  "posts": [{
    "id": 1,
    "title": "title",
    "comments": [1]
  }],
  "comments": [
    //.. and so on ...
  ]
}
DS.Store#push
需要一条已规范化且不包含侧面加载数据的记录(注意没有根键):

因此,
push
返回记录是有意义的,但是
pushPayload
不返回任何内容

使用
pushPayload
时,第二次查找
store.find('post',1)
(或
store.getById('post',1)
)是最好的方法,我认为没有更好的方法了。

pushPayload
开始,现在可以返回推送到存储中的所有记录的数组,一旦启用了
“ds-pushpayload-return”

目前,此功能在标准版或beta版中都不可用,您必须使用

"ember-data": "emberjs/data#master",

(即金丝雀)在您的
package.json
中,以便访问它。我不确定该功能何时能普遍使用。

是的,我在查看余烬数据代码时就是这么想的。谢谢
"ember-data": "emberjs/data#master",