Ember.js 如何在余烬解析关系之前获取关系值
我有三种型号:Ember.js 如何在余烬解析关系之前获取关系值,ember.js,ember-data,promise,Ember.js,Ember Data,Promise,我有三种型号: App.Model1 = DS.Model.extend({ ref2: DS.hasMany('model2', {async: true}) }); App.Model2 = DS.Model.extend({ ref3: DS.belongsTo('model3', {async: true}) }); App.Model3 = DS.Model.extend({ someProp: DS.attr('string') }); 问题是,我需要在一条路
App.Model1 = DS.Model.extend({
ref2: DS.hasMany('model2', {async: true})
});
App.Model2 = DS.Model.extend({
ref3: DS.belongsTo('model3', {async: true})
});
App.Model3 = DS.Model.extend({
someProp: DS.attr('string')
});
问题是,我需要在一条路线上获取三个模型,但我只需要必要的。这意味着我需要获取由Model1
引用的Model1
,Model2
,最后是由Model2
引用的Model3
Ember数据做得很好,因为它在一个XHR请求中解析了的多个关系。问题是我想做这样的事情(例如在beforeModel
中):
但这样做会使ember数据执行与数组中项目数量相同的xhr请求。如果我可以在引用对象解析关系之前获取其id,那么我就可以在一个请求中获取所有Model3
对象。如果您在后端对此进行控制,则可以更轻松地寻址此服务器端,在原始响应中返回相关记录。如果您总是以高于您的方式一起请求记录,这一点尤其正确。此外,您还可以将关系更改为非异步
{
model1s:[
{
id:1,
ref2: [1,2]
},
{
id:2,
ref2: [3,4]
}
],
model2s:[
{
id:1,
ref3: [1,2]
},
{
id:2,
ref3: [3,4]
}
.....
],
model3s:[
....
]
}
谢谢我就知道你会这么说。我应该有一个确切的解释,他们并不总是被要求在一起,这解释了为什么我想做我要求的事情。
{
model1s:[
{
id:1,
ref2: [1,2]
},
{
id:2,
ref2: [3,4]
}
],
model2s:[
{
id:1,
ref3: [1,2]
},
{
id:2,
ref3: [3,4]
}
.....
],
model3s:[
....
]
}