Ember: 类型对象的属性

Ember: attributes of type object

API 我称 returns 数据为:

{
  "data": {
    "id": "5",
    "type": "person",
    "attributes": {
      "name": "John",
      "pet": {
        "typeOf": "cat",
        "petName": "Furry"
      },
      ...

models/person.js:

name: attr('string'),
pet: attr()

模板:

{{input type="text" class="form-control" value=model.pet.petName}}

这适用于名称但不适用于宠物。即使没有 API 召唤宠物,我是否也必须创建宠物模型?这是否有效,因为 API returns 宠物作为对象属性,而不是关系?

Yes.It 会起作用。 ember-twiddle

routes/application.js

import Ember from 'ember';
export default Ember.Route.extend({
  model: function() {
    return this.store.findRecord('person', 5);
  }
});

models/person.js

import Model from "ember-data/model";
import attr from "ember-data/attr";

export default Model.extend({
  name: attr('string'),
  pet: attr()
});

templates/application.hbs

{{input type="text" class="form-control" value=model.pet.petName}}

adapters/application.js

import Adapter from "ember-data/adapters/json-api";

export default Adapter.extend();

serializers/application.js

import Serializer from "ember-data/serializers/json-api";

export default Serializer.extend();

JSONAPI调用return数据:

{
    data: {
        type: 'person',
        id: 5,
        attributes: {
            "name": "John",
            "pet": {
                "typeOf": "cat",
                "petName": "Furry"
            }
        }
    }
}