我遇到加载belongsTo
关系的问题 - 没有显示错误,也没有发送请求。用户界面只是空白。鉴于以下模型:
project.js 从' ember-data';
导入DSexport default DS.Model.extend({
name: DS.attr(),
items: DS.hasMany('line-item', {async: true}),
customer: DS.belongsTo('customer', {async: false})
});
customer.js
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr(),
email: DS.attr(),
projects: DS.hasMany('project', {async: true})
});
项目与客户之间存在关系。访问项目端点时,项目会正确返回:
{
"data":{
"type":"projects",
"id":"3861b834-e270-4296-b7be-9aca55676874",
"attributes":{
"created":"2016-04-27T22:36:01.061349Z",
"modified":"2016-04-27T22:36:01.061477Z",
"name":"Sample name",
},
"relationships":{
"customer":{
"data":{
"type":"customers",
"id":"9242bd41-6bb0-41ed-b5f3-21df26486d9e"
}
},
"items":{
"meta":{
"count":0
},
"data":[
]
}
}
}
}
然而,在尝试访问客户时,没有任何反应(没有任何意义:没有控制台输出,没有客户端点的请求等.UN无法加载):
this.get('project').get('customer');
访问其他属性(包括项目的项目)。
知道我哪里出错了?
答案 0 :(得分:2)
在project
模型中,您将customer
定义为async: false
,这意味着在从服务器加载项目时应提供此模型。从您提供的json输出中缺少客户数据。
因此,在从服务器返回json时要么包含customer
记录,要么让客户async: true
,所以在调用project.get('customer')