我很难弄清楚如何告诉Ember序列化这个json示例
{
"error":false,
"data":{
"total":1,
"per_page":15,
"current_page":1,
"last_page":1,
"from":1,
"to":1,
"data":[
{
"id":"11",
"type":"1",
"body":"a simple body",
"owner":"14",
"published":"1",
"updated_at":"2013-12-10 14:30:31",
"created_at":"2013-12-10 14:30:31"
}
]
}
}
我无法弄清楚如何告诉Ember从/ feedItems加载的数据是内部数据然后是数据,
我尝试了很多东西但是无法掌握它,到目前为止我在app.js中有这个:
App.FeedItem = DS.Model.extend({
error: DS.attr('boolean'),
data: DS.hasMany('FeedItemData')
});
App.FeedItemData = DS.Model.extend({
data: DS.hasMany('FeedItemDataData')
});
App.FeedItemDataData = DS.Model.extend({
body: DS.attr('string')
});
App.FeedRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('FeedItem');
}
});
答案 0 :(得分:0)
您当前的方法不正确。模型应该表示数据的外观,而不是从服务器返回的方式。 <{1}}和FeedItemData
不是您应用中的逻辑实体,因此不应该存在。
您需要创建FeedItemDataData
(或FeedItemSerializer
如果所有数据都采用这种方式格式化),如下所示:
ApplicationSerializer
或者在 FeedItemSerializer = Ember.RESTSerializer.extend({
normalizePayload: function(type, payload) {
if(!payload.error) {
return payload.data.data;
} else {
// handle the error
}
}
});
as documented here中执行类似操作。