ember数据调试模型反序列化

时间:2015-10-21 14:42:35

标签: ember.js ember-data

我有一个从REST API获取数据的ember应用程序。

我有一个未正确处理的特定模型联系人

如果拼写错误的模型名称,则不会出现错误消息。 索引路由的有效负载包含大约1500个联系人,如下所示:

{"contacts":
   [{"id":1,
     "type":"customer",
     "foreign_key":1242,
     "first_name":"John",
     "last_name":"Smith",
     ...
     "created_at":"-0001-11-30 00:00:00",
     "updated_at":"-0001-11-30 00:00:00",
     "customer_id":1242
    },
     ...
   ]
}

当我查看网络标签时,JSON响应看起来不错。浏览器能够很好地解析和显示响应。

我比较了对类似模型的反应,格式看起来和我一样。

在ember检查器中,在 Data 下,我得到1个id = null的联系人,其他字段未定义。

联系模式是:

import DS from 'ember-data';
export default DS.Model.extend({
  type:           DS.attr('string'),
  foreign_key:    DS.attr('number'),
  first_name:     DS.attr('string'),
  last_name:      DS.attr('string'),
  ... more strings 
  created_at:     DS.attr('string'),
  updated_at:     DS.attr('string'),
  customer:       DS.belongsTo('customer')  
});

ember 2.0.2
ember-data 2.0.0
使用pod结构

我如何进一步调查?看起来响应未被正确解析并正确转换为联系模型。

ANSWER

事实证明,您不应将type用作模型中的一个字段名称 (我应该选择在定义数据库表时听到的小警告铃声......)

1 个答案:

答案 0 :(得分:1)

尝试在Application Serializer中添加normalizeArrayResponse,然后进行调试:



normalizeArrayResponse: function(store, primaryModelClass, payload, id, requestType) {
  console.log(payload);
  return this._super(store, primaryModelClass, normalizedRecords, id, requestType);
}




只是为了确认您的数据正在通过序列化程序。