我试图让Emberjs与fortunejs后端合作。到目前为止,我在Ember中创建了一个非常简单的页面,它应该显示所有“客户”实体,这些实体可以与LSadapter一起使用。
当我的应用加载概述页面时,它会向http://localhost:1337/customers
发出GET请求,并且财富回复:
{
"customers": [
{
"id": "YIR17juOFkaWBFhl",
"name": "PIm",
"phone": 132,
"fax": 123,
"chamberOfCommerceNumber": 123,
"website": "123.nl"
},
{
"id": "gUGIoHvwI8mwVTgE",
"name": "Marco",
"phone": 123,
"fax": 123,
"chamberOfCommerceNumber": 123,
"website": "it.nl"
}]}
然而,ember似乎并不喜欢它并且给了我:
“断言失败:来自findAll的响应必须是数组,而不是 未定义“
我认为这是正确的json格式,ember期望从get请求中获取所有客户,出现了什么问题?
仅供参考,我制作了一个与fortunejs配合使用的创建页面。为此我必须像这样修改RESTSerializer:
App.ApplicationSerializer = DS.RESTSerializer.extend({
serialize: (record, options) ->
[this._super record, options] #Turn into array
serializeIntoHash: (hash, type, record, options) ->
console.log type.typeKey
type.typeKey = Ember.Inflector.inflector.pluralize type.typeKey #pluralize root key
console.log type.typeKey
console.log record
result = this._super hash, type, record, options
});
但是这应该与api的传入JSON无关。
任何想法出了什么问题?
答案 0 :(得分:0)
我知道这已经过时了,而且我不确定Stack Overflow的政策,但是我正在寻找未解决的问题,看看我是否知道任何问题......
我认为这里的问题是findAll(当前版本的Ember Data中不存在)是一种只进行商店查找的方法。相当于当前版本中的store.all
(http://emberjs.com/api/data/classes/DS.Store.html#method_all)。
您需要store.find
,它会对数据(http://emberjs.com/api/data/classes/DS.Store.html#method_find)发出后端服务器请求。
希望这有助于任何偶然发现此问题的人......