Ember数据1.0应用程序-en AdapterSerializer无法正常工作?

时间:2014-03-28 12:05:26

标签: serialization ember.js adapter

我的问题与此问题一致:Ember data 1.0.0: confused with per-type adapters and serializers

问题是我无法初始化每种类型的RESTSerializer,因为我需要设置 ActiveModelSerializer

App.FooSerializer = DS.ActiveModelSerializer.extend({attrs: {}}); 

将关系设置为嵌入式。

所以我想为所有型号设置1个序列化器。我试图设置ApplicationSerializer,但是当从服务器获得响应时,这并没有调用任何钩子(而且我确定我的服务器提供正确的响应):

App.ApplicationSerializer = DS.RESTSerializer.extend({
    extractSingle: function(store, type, payload, id, requestType) {
        return this._super(store, type, payload, id, requestType);
    },
    extractArray: function(store, type, payload, id, requestType) {
        return this._super(store, type, payload, id, requestType);
    },
    normalize: function(type, property, hash) {
        return this._super(type, property, hash);
    }
});

设置我的适配器似乎不起作用:

var adapter = require('init/adapter');

    App.ApplicationAdapter = adapter.extend({
        defaultSerializer: myAdapter //I QUESS THIS IS WRONG?
    });

我是否出现语法错误?还有其他建议吗?

修改

好的,我发现了我的错误,但不是一个很好的解决方案。似乎我的FooSerializer覆盖了一般的ApplicationSerializer ..

有没有办法可以设置两者? :/

1 个答案:

答案 0 :(得分:2)

您不能同时使用这两种说法,但可以让FooSerializer扩展您的ApplicationSerializer,然后覆盖您希望以不同方式使用的方法。

App.FooSerializer = App.ApplicationSerializer.extend({
   extractArray: function(store, type, payload, id, requestType) {
    // alert each record to annoy the user
    return this._super(store, type, payload, id, requestType);
   },
});