gpt4 book ai didi

ember.js - Ember-Data:我的自定义 `serializeIntoHash` 返回一个空哈希?

转载 作者:行者123 更新时间:2023-12-01 23:51:40 25 4
gpt4 key购买 nike

默认情况下,当 RESTAdapter 向服务器发送 POST 数据请求时,它会将模型的 typeKey 作为散列的根发送:

typeKey: { data }

但我的服务器需要一个“无根”散列:

{ data }

我发现这是覆盖的方法,但我正在做的事情不仅导致根被删除,而且散列本身也是空的......即使我的 console.log 显示 记录被序列化到散列中。

import ApplicationSerializer from './application';

export default ApplicationSerializer.extend({

serializeIntoHash: function(hash, type, record, options) {

console.log(' hash going in: ' + JSON.stringify(hash)); // hash is {} going in

hash = this.serialize(record, options);

console.log('hash going out: ' + JSON.stringify(hash)); // hash is { full of data } going out

return hash; // after this, for some reason the request goes out as an empty hash {}
}

});

我没有正确返回修改后的哈希值吗?我还尝试了这些变体:

return (hash, type, record, options)

return this._super(hash);

return this._super(hash, type, record, options);

我返回的任何东西似乎都不起作用。我不知道我做错了什么?

我在 API Docs for the method 中注意到,没有使用 return,但如果我排除它,我会遇到完全相同的问题,所以我不知道我是否需要返回?

最佳答案

serializeIntoHash 方法很古怪,调用者不希望您返回哈希(如前所述),它希望您修改发送的哈希。

这意味着,如果您只设置散列,您将不再使用将被发送的散列。您将需要设置属性/从该实例中删除属性。

他们在这里合并结果以完成我所说的:https://github.com/emberjs/data/blob/v1.0.0-beta.10/packages/ember-data/lib/serializers/json_serializer.js#L500

关于ember.js - Ember-Data:我的自定义 `serializeIntoHash` 返回一个空哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26163982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com