Ember Data Beta 2 - Serializer/Deserializer for FixtureAdapt

Ember Data Beta 2 - Serializer/Deserializer for FixtureAdapter

本文关键字:Deserializer for FixtureAdapt Serializer Data Beta Ember      更新时间:2023-09-26

据我了解,DS.FixtureAdapter默认不使用序列化程序。这是对的吗?

我主要尝试使用夹具适配器进行自定义转换。我看到DS.JSONSerializer在这里调用转换的反序列化方法,但在夹具适配器中,serializer 属性设置为 null 。看起来所有夹具适配器的查找方法都直接返回夹具。

相比之下,DS.RESTAdapter有其ajax方法,该方法声称从序列化程序调用正确的extract风格。但是,我看不出这是在哪里完成的。这发生在源中的什么地方?

是否有我可以覆盖的属性或内容以将夹具适配器与序列化器连接起来?(我尝试在我的夹具适配器中serializer: DS.JSONSerializer,但这似乎只是阻止加载所有数据。还是我正在考虑修改源是唯一的解决方案?如果是这样,知道 REST 适配器在哪里/如何调用 extractSingle/extractArray 将是惊人的。

我很感激我能得到的任何帮助。我对此有点死胡同。

extractSingle/extractArrayJSONSerializerextract方法中调用。

var specificExtract = "extract" + requestType.charAt(0).toUpperCase() + requestType.substr(1);
return this[specificExtract](store, type, payload, id, requestType);

一些花哨的"元编程"使它们很难找到,因为它们不会出现在 grep 中。

https://github.com/emberjs/data/blob/ddaa5fa3b77c547315777a3e8609a9f30585db80/packages/ember-data/lib/serializers/json_serializer.js#L113-L114

[更新]:从store内部调用主extract方法。

https://github.com/emberjs/data/blob/ddaa5fa3b77c547315777a3e8609a9f30585db80/packages/ember-data/lib/system/store.js#L1399

https://github.com/emberjs/data/blob/ddaa5fa3b77c547315777a3e8609a9f30585db80/packages/ember-data/lib/system/store.js#L1414

https://github.com/emberjs/data/blob/ddaa5fa3b77c547315777a3e8609a9f30585db80/packages/ember-data/lib/system/store.js#L1427

https://github.com/emberjs/data/blob/ddaa5fa3b77c547315777a3e8609a9f30585db80/packages/ember-data/lib/system/store.js#L1441

https://github.com/emberjs/data/blob/ddaa5fa3b77c547315777a3e8609a9f30585db80/packages/ember-data/lib/system/store.js#L1456

https://github.com/emberjs/data/blob/ddaa5fa3b77c547315777a3e8609a9f30585db80/packages/ember-data/lib/system/store.js#L1473