Ember JsonApi Serialize覆盖normalizeResponse。如何解释参数

时间:2018-04-27 14:54:38

标签: ember.js ember-data json-api

我在Ember.js中使用JsonApiSerializer,我想覆盖标准行为。我希望某些模型的行为不同。因此,我想检查参数primaryModelClass以确定模型类型,但如何解释该参数?我试图检查它,但我得到的只是"未知的mixin"。

我看过这里的文档:

https://emberjs.com/api/ember-data/3.0/classes/DS.JSONAPISerializer/methods/normalizeResponse?anchor=normalizeResponse

我有这段代码

import DS from 'ember-data';
export default DS.JSONAPISerializer.extend({
    normalizeResponse: function(store, 
                                primaryModelClass, 
                                payload, id, requestType) {
    console.log(primaryModelClass.toString());
...

输出(unknown mixin)

如何在normalizeResponse方法中伪造模型类型?

我使用Ember 3.0。

1 个答案:

答案 0 :(得分:1)

所以文档在这方面并不是很清楚,但你非常接近:

您需要使用primaryModelClass.modelName,它将返回模型名称的字符串。

https://www.emberjs.com/api/ember-data/3.0/classes/DS.JSONAPISerializer/methods/normalizeResponse?anchor=normalizeResponse

但是,这可能不是您想要的方法。您需要的操作类型有更具体的方法:normalize<storeMethod>Response:即。 normalizeQueryResponse

如果您需要特定模型的特定转换,您也可以生成特定于模型的序列化器。因此,您可以通过运行post

comment模型创建与ember generate serializer post模型不同的序列化程序