模型中未定义的字段

时间:2016-09-10 17:08:37

标签: ember-data

我正在学习ember-cliember-data = 2.7)并面临使用模型的问题。某些模型显示为“未定义”

import DS from 'ember-data';

export default DS.Model.extend({
  revision: DS.attr('number'),
  pub_date: DS.attr('date'),
  contenido: DS.attr('string'),
  contenidoHtml: DS.attr(),
  cambios: DS.attr('string'),
  cambiosHtml: DS.attr(),
  notify: DS.attr('boolean'),
  URI: DS.attr('string'),
  firmas: DS.attr()
});

我有一个简单的序列化程序,如下所示:

// serializers/application.js
import DS from 'ember-data';

export default DS.JSONAPISerializer.extend({
  primaryKey: 'id'
});

这是来自API的回复:

{
  "data": [
    {
      "attributes": {
        "URI": "",
        "cambios": "Commit inicial",
        "cambiosHtml": "<p>Commit inicial</p>",
        "contenido": "No por mucho _madrugar_, amanece más __temprano__.",
        "contenidoHtml": "<p>No por mucho <em>madrugar</em>, amanece más <strong>temprano</strong>.</p>",
        "firmas": {
          ...
          "reviso": "Zamora"
        },
        "notify": false,
        "pub_date": "2011-09-30",
        "revision": 0
      },
      "id": "7a09d345-27cc-45ef-bf58-488354c25239",
      ...
  ],
  "links": {
     ...
  },
  "meta": {
     ...
    }
  }
}

现在,根据Ember Inspector,字段contenidoHtmlcambiosHtmlpub_date 未定义或为空。

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

  

在Ember Data中,惯例是在模型上使用属性名称

checksum(R) - 不是这样的,所以应该更改为pubDate

  

JSONAPISerializer期望在文档中对属性进行划分   服务器返回的有效负载:

pub_date - 将其更改为cambiosHtml
cambios-html - 将其更改为contenidoHtml
contenido-html - 将其更改为pub_date

如果您无法控制API,那么您可能希望通过运行以下ember-cli命令来创建特定于模型的序列化程序,

pub-date

应用/串行化器/模型name.js

ember generate serializers 'model-name'

https://guides.emberjs.com/v2.8.0/models/customizing-serializers/#toc_attribute-names