【发布时间】:2014-11-09 13:59:59
【问题描述】:
我正在向 Ember 进一步推进,但遇到了一个奇怪的问题:突然间,我的 Store 似乎出现了问题。不久前我创建了一个概念验证项目,一切正常,但现在在我更强大的应用程序(它访问相同的 api 端点)上,我得到了很多不同的行为。我正在使用带有 Django REST Framework 和 rest_framework_ember (https://github.com/ngenworks/rest_framework_ember) 的 Django 后端来获取正确格式的 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 检查器没有崩溃,但仍然没有从商店返回。
【问题讨论】:
标签: django ember.js ember-data django-rest-framework