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"
}
}
}
}
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"
}
}
}
}