Ember 并不总是加载 belongsTo
Ember isn't always loading belongsTo
我似乎无法锻炼如何在 Ember 中正确加载关系。用户模型有时只有 returns。如果我刷新页面,该值似乎有 50/50 的机会为空,或者它会正确解析。
我在路由中了解到我正在返回一个承诺,它是服务器对象(用户关系的 belongsTo 端),但是我如何告诉路由在加载页面之前等待用户模型加载,或者我如何告诉 ember 在最终加载用户时更新页面上的数据?
我试过在 afterModel 挂钩中使用 RSVP,但没有成功。必须有一个明显的解决方案吗?
路线
model(param) {
return this.store.findRecord('server', param.server_id);
},
服务器型号
export default Model.extend(Validations, {
user: belongsTo('user'),
});
用户模型
export default Model.extend({
displayName: attr('string'),
servers: hasMany('server'),
});
分量
export default Ember.Component.extend({});
组件模板
<div class="user-panel">
<ul class="user-details">
<li>owner:{{model.user.displayName}}</li>
</ul>
</div>
我在这里读过一个类似的问题How to load belongsTo/hasMany relationships in route with EmberJS
但是由于我只返回一个对象而不是一个数组,所以在尝试任何解决方案时我都会 Array Methods must be provided an Array
抛出
服务器响应
{
"data": {
"type": "server",
"id": "578aba694b08ce2310f36798",
"attributes": {
//removed
},
"relationships": {
"jobs": {
"data": [
{
"type": "jobs",
"id": "578aba694b08ce2310f3679a"
}
]
},
"user": {
"data": {
"type": "user",
"id": "57760677d04e0f11f4d3f7e5"
}
}
}
}
}
这应该开箱即用!不是等待部分,而是自动更新。
结帐this 胡思乱想。
但是如果您想等待模型,您可以在 afterModel
挂钩中强制执行此操作:
afterModel(model) {
return get(model, 'user');
}
我似乎无法锻炼如何在 Ember 中正确加载关系。用户模型有时只有 returns。如果我刷新页面,该值似乎有 50/50 的机会为空,或者它会正确解析。
我在路由中了解到我正在返回一个承诺,它是服务器对象(用户关系的 belongsTo 端),但是我如何告诉路由在加载页面之前等待用户模型加载,或者我如何告诉 ember 在最终加载用户时更新页面上的数据?
我试过在 afterModel 挂钩中使用 RSVP,但没有成功。必须有一个明显的解决方案吗?
路线
model(param) {
return this.store.findRecord('server', param.server_id);
},
服务器型号
export default Model.extend(Validations, {
user: belongsTo('user'),
});
用户模型
export default Model.extend({
displayName: attr('string'),
servers: hasMany('server'),
});
分量
export default Ember.Component.extend({});
组件模板
<div class="user-panel">
<ul class="user-details">
<li>owner:{{model.user.displayName}}</li>
</ul>
</div>
我在这里读过一个类似的问题How to load belongsTo/hasMany relationships in route with EmberJS
但是由于我只返回一个对象而不是一个数组,所以在尝试任何解决方案时我都会 Array Methods must be provided an Array
抛出
服务器响应
{
"data": {
"type": "server",
"id": "578aba694b08ce2310f36798",
"attributes": {
//removed
},
"relationships": {
"jobs": {
"data": [
{
"type": "jobs",
"id": "578aba694b08ce2310f3679a"
}
]
},
"user": {
"data": {
"type": "user",
"id": "57760677d04e0f11f4d3f7e5"
}
}
}
}
}
这应该开箱即用!不是等待部分,而是自动更新。
结帐this 胡思乱想。
但是如果您想等待模型,您可以在 afterModel
挂钩中强制执行此操作:
afterModel(model) {
return get(model, 'user');
}