首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONSerializer中没有容器

JSONSerializer中没有容器
EN

Stack Overflow用户
提问于 2014-02-12 09:54:05
回答 1查看 248关注 0票数 1

这在我的应用程序中失败了(来自JSONSerializer in ember-data):

代码语言:javascript
复制
transformFor: function(attributeType, skipAssertion) {
    var transform = this.container.lookup('transform:' + attributeType);
    Ember.assert("Unable to find transform for '" + attributeType + "'", skipAssertion || !!transform);
    return transform;
}

这是一个错误:

确实没有集装箱。为什么?我该给它下定义吗?多么?

这是我的适配器:

代码语言:javascript
复制
SettingsApp.ApplicationAdapter = DS.RESTAdapter.extend({
    bulkCommit: false,
    namespace: SettingsApp.config.API_NAMESPACE,
    host: SettingsApp.apiUrl,
    serializer: SettingsApp.MetaRESTSerializer.create(),
    ajax: function(url, type, hash) {
        var ajaxPromise = this._super(url, type, hash);
        if (DEBUG) { console.log('>>>>> REQUEST > %s:%s > hash=%o ajaxPromise=%o', type, url, hash, ajaxPromise); }
        ajaxPromise.then(function(json){
            if (DEBUG) { console.log('>>>>> REPLY   > %s:%s > %o', type, url, json); }
        });
        return ajaxPromise;
    }
});

这是序列化程序(没什么特别的):

代码语言:javascript
复制
SettingsApp.MetaRESTSerializer = DS.RESTSerializer.extend({
    primaryKey: '_id',
    extractMeta: function(store, type, payload) {
        // TODO: standard implementation. Check with backend to implement this for good
        if (payload && payload.meta) {
            store.metaForType(type, payload.meta);
            delete payload.meta;
        }
    },

});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-12 12:43:47

正如此问题中所指定的,解决方案如下:

代码语言:javascript
复制
App.ApplicationSerializer = DS.RESTSerializer.extend({...});

而不是DS.RESTAdapter中实现序列化程序。

代码语言:javascript
复制
//serializer: SettingsApp.MetaRESTSerializer.create(),
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21724343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档