Ember自定义JSON

时间:2014-05-08 20:39:44

标签: javascript ember.js ember-data

我很难弄清楚如何告诉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');
    }
});

1 个答案:

答案 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中执行类似操作。