我不断推进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>
答案 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
错误。