Ember Store突然无法正常工作

时间:2014-09-23 15:22:57

标签: django ember.js ember-data django-rest-framework

我不断推进Ember,我遇到了一个奇怪的问题:突然间,我的商店似乎很不稳定。我不久前创建了一个概念验证项目,一切正常,但现在我的更强大的应用程序(它遇到相同的api端点)我的行为有很多不同。我使用Django后端和Django REST Framework以及rest_framework_ember(https://github.com/ngenworks/rest_framework_ember)以正确的格式获取json响应(当我刚用Postman命中端点时,所有格式化看起来都很棒)。在Ember中访问商店时,它会提供bupkis并使用Ember调试器

"Uncaught TypeError: Cannot read property 'canCatalogEntriesByType' of undefined " 

我正在运行Ember 1.7.0和EmberData 0.0.14,这是我的app.js:

App = Ember.Application.create({
    LOG_TRANSITIONS: true,
    LOG_TRANSITIONS_INTERNAL: true
});

api_location = 'http://localhost:8000';
api_namespace = 'api/v1';


App.ApplicationAdapter = DS.RESTAdapter.extend({
    host: api_location,
    namespace: api_namespace,
    headers: {
        'Content-Type': 'application/json',
        'request-source': 'ember'
    },

    ajaxError: function(jqXHR) {
        var error = this._super(jqXHR);
        if (jqXHR && jqXHR.status === 400) {
            var response = Ember.$.parseJSON(jqXHR.responseText),
            errors = {},
            keys = Ember.keys(response);
            if (keys.length === 1) {
                var jsonErrors = response[keys[0]];
                Ember.EnumerableUtils.forEach(Ember.keys(jsonErrors), function(key) {
                    errors[key] = jsonErrors[key];
                });
            }
            return new DS.InvalidError(errors);
        } else {
            return error;
        }
    }

});

App.ApplicationSerializer = DS.RESTSerializer.extend();

App.Store = DS.Store.extend({
    adapter : App.ApplicationAdapter.create()
});

我现在已经在墙上砸了几天,没有任何进展,所以任何有关这个问题的帮助都会非常有帮助。提前谢谢!

编辑:我还注意到,restadapter并不尊重"主持人"我设置(尝试命中远程端点以测试响应是否有异常)...希望这有点帮助。

Edit2:进一步了解,我让Bower使用了ember-data 1.0.0 beta,我可以更好地控制主机/名称空间,而且ember检查员也没有什么好处,但仍然没有从商店返回任何内容。 / p>

1 个答案:

答案 0 :(得分:1)

将应用程序从Ember 1.5升级到1.8后,我遇到了同样的问题。

我最终找到了这个GitHub Issue,这导致我将ember-data更新为最新版本(v1.0.0-beta.11),这为我解决了这个问题。

'数据'选项卡现在再次显示在Ember Inspector中,不再显示Uncaught TypeError: Cannot read property 'canCatalogEntriesByType' of undefined错误。