Ember.js 余烬数据:您的服务器返回了一个密钥为0的散列,但您没有该散列的映射
我有一个简单的模型,并使用RESTadapter获取数据。JSON请求已执行,但随后我收到以下错误:“您的服务器返回了一个密钥为0的哈希,但您没有该哈希的映射” 你知道原因是什么吗 型号:Ember.js 余烬数据:您的服务器返回了一个密钥为0的散列,但您没有该散列的映射,ember.js,ember-data,Ember.js,Ember Data,我有一个简单的模型,并使用RESTadapter获取数据。JSON请求已执行,但随后我收到以下错误:“您的服务器返回了一个密钥为0的哈希,但您没有该哈希的映射” 你知道原因是什么吗 型号: App.Article = DS.Model.extend({ title: DS.attr('string') }); [ { "id": 1, "title": "Title 1" }, { "id": 2, "title": "Title 2"
App.Article = DS.Model.extend({
title: DS.attr('string')
});
[
{
"id": 1,
"title": "Title 1"
},
{
"id": 2,
"title": "Title 2"
}
]
请求文章的JSON响应。JSON:
App.Article = DS.Model.extend({
title: DS.attr('string')
});
[
{
"id": 1,
"title": "Title 1"
},
{
"id": 2,
"title": "Title 2"
}
]
我认为原因是回复的格式。。。我已经改变了我的回答,加入了“文章”,但仍然存在同样的问题
[
{
"article": {
"id": 1,
"title": "Title 1"
}
},
{
"article": {
"id": 2,
"title": "Title 2"
}
}
]
在哪里可以找到关于如何格式化JSOn请求和响应以便与RESTadapter一起使用的好文档?您要查找的JSOn应该有一个根元素
{"articles": [
{
"id": 1,
"title": "Title 1"
},
{
"id": 2,
"title": "Title 2"
}
]
}
您可以在或的@kiwiupover中找到文档。kiwiupover的正确率为98%,如果有多个记录,则应将其复数为
文章
:
{"articles": [
{
"id": 1,
"title": "Title 1"
},
{
"id": 2,
"title": "Title 2"
}
]}
如果您没有访问服务器的权限,那么修改适配器非常容易。对于“GET”请求,您需要覆盖适配器中的
find
和findAll
:
App.Store = DS.Store.extend({
adapter: DS.RESTAdapter.create({
find: function(store, type, id) {
var root = this.rootForType(type), adapter = this;
return this.ajax(this.buildURL(root, id), "GET").
then(function(json){
var updatedJSON = {};
updatedJSON[root] = json;
adapter.didFindRecord(store, type, {article: json}, id);
}).then(null, DS.rejectionHandler);
},
findAll: function(store, type, since) {
var root, adapter;
root = this.rootForType(type);
adapter = this;
var resourceName = this.pluralize(root);
return this.ajax(this.buildURL(root), "GET",{
data: this.sinceQuery(since)
}).then(function(json) {
var updatedJSON = {};
updatedJSON[resourceName] = json;
adapter.didFindAll(store, type, updatedJSON);
}).then(null, DS.rejectionHandler);
}
})
});
目前,这些函数都存在于源代码中
这里的区别在于在每个函数中定义了
updatedJSON
。它从服务器获取json并构造一个新对象,其中(希望)包含您需要的正确密钥。谢谢。包含根元素“article”后仍然不起作用-相同错误。问题是多元化吗?我返回一个需要放在“article”中的文章列表。还有其他建议吗?完全文章需要文章,我的错误我会编辑答案。这确实是正确的结构。知道在哪里可以找到关于预期的Ember JSON结构的文档吗?非常感谢。MarcI添加了几个文档链接。我希望这是有帮助的。Thx的文档!事实上,使用冠词是有效的。我可以在哪里找到用于Ember数据的JSON结构文档(考虑一对多数据结构等)。。。感谢我对98%的答案的修正。干杯如果这个方法看起来已经不再是一个有效的例子了,你愿意展示一下它在ember data 1.0中是如何工作的吗?老实说,当我意识到事情发生了多快的变化并破坏了以前的工作时,我停止了尝试使用ember。