Ember.js 余烬不是';Don’不要总是装东西
我似乎无法训练如何在Ember中正确加载关系。用户模型只返回部分时间。如果我刷新页面,则该值有50/50的可能为空,或者它将正确解析 我知道在路由中,我返回的承诺是服务器对象(用户关系结束时的belongsTo),但我如何告诉路由在加载页面之前等待加载用户模型,或者如何告诉ember在最终加载用户时更新页面上的数据 我试过在后置模型的钩子里玩RSVP,但没有任何运气。必须有一个明显的解决办法吗 路线Ember.js 余烬不是';Don’不要总是装东西,ember.js,ember-data,rsvp-promise,Ember.js,Ember Data,Rsvp Promise,我似乎无法训练如何在Ember中正确加载关系。用户模型只返回部分时间。如果我刷新页面,则该值有50/50的可能为空,或者它将正确解析 我知道在路由中,我返回的承诺是服务器对象(用户关系结束时的belongsTo),但我如何告诉路由在加载页面之前等待加载用户模型,或者如何告诉ember在最终加载用户时更新页面上的数据 我试过在后置模型的钩子里玩RSVP,但没有任何运气。必须有一个明显的解决办法吗 路线 model(param) { return this.store.findRecord('s
model(param) {
return this.store.findRecord('server', param.server_id);
},
<div class="user-panel">
<ul class="user-details">
<li>owner:{{model.user.displayName}}</li>
</ul>
</div>
{
"data": {
"type": "server",
"id": "578aba694b08ce2310f36798",
"attributes": {
//removed
},
"relationships": {
"jobs": {
"data": [
{
"type": "jobs",
"id": "578aba694b08ce2310f3679a"
}
]
},
"user": {
"data": {
"type": "user",
"id": "57760677d04e0f11f4d3f7e5"
}
}
}
}
}
服务器型号
export default Model.extend(Validations, {
user: belongsTo('user'),
});
export default Model.extend({
displayName: attr('string'),
servers: hasMany('server'),
});
用户模型
export default Model.extend(Validations, {
user: belongsTo('user'),
});
export default Model.extend({
displayName: attr('string'),
servers: hasMany('server'),
});
组件
export default Ember.Component.extend({});
组件模板
model(param) {
return this.store.findRecord('server', param.server_id);
},
<div class="user-panel">
<ul class="user-details">
<li>owner:{{model.user.displayName}}</li>
</ul>
</div>
{
"data": {
"type": "server",
"id": "578aba694b08ce2310f36798",
"attributes": {
//removed
},
"relationships": {
"jobs": {
"data": [
{
"type": "jobs",
"id": "578aba694b08ce2310f3679a"
}
]
},
"user": {
"data": {
"type": "user",
"id": "57760677d04e0f11f4d3f7e5"
}
}
}
}
}
这应该是现成的!不是等待部分,而是自动更新 结帐玩转 但是如果您想等待模型,您可以在
afterModel
hook中强制执行此操作:
afterModel(model) {
return get(model, 'user');
}
这应该是现成的!不是等待部分,而是自动更新 结帐玩转 但是如果您想等待模型,您可以在
afterModel
hook中强制执行此操作:
afterModel(model) {
return get(model, 'user');
}
对于密切相关的车型,时机可能很挑剔。如果你能控制API,我建议把用户和服务器一起放在一边。对于密切相关的模型,计时可能会很挑剔。如果你能控制API,我建议将用户和服务器一起加载。是的,我也是这么想的,它最终出现在一个嵌套组件中这一事实与此有关系吗?不太可能。除非你不让模型通过。更有可能是API、序列化程序或适配器有问题。与灰烬检查器一起检查您的状态。通常的问题是,余烬数据认为它已经加载了记录,或者关系不清楚。不幸的是,afterModel挂钩不起作用。使用inspect,我可以看到用户模型
已实现:true
,但内容
为空。服务器正在返回用户模型,而ember正在发送对数据的请求—看起来时间已经过了,当数据从服务器返回时,ember没有更新其记录。每次使用邮递员查询终结点时,服务器都会正确响应。如果已完成:true
和内容:null
,则服务器响应、序列化程序或适配器出错!与灰烬检查员一起检查。还要检查两个服务器响应。用户
和服务器
.Im使用“开箱即用”序列化程序(我还没有编写)和默认的JSONAPIAdapter
,只配置了主机。来自服务器的用户响应也是正确的。用户模型有两个有许多关系,在这种情况下我需要声明相反的关系吗?是的,我也是这么想的,它最终在一个嵌套组件中的事实是否与此有关?不是真的。除非你不让模型通过。更有可能是API、序列化程序或适配器有问题。与灰烬检查器一起检查您的状态。通常的问题是,余烬数据认为它已经加载了记录,或者关系不清楚。不幸的是,afterModel挂钩不起作用。使用inspect,我可以看到用户模型已实现:true
,但内容
为空。服务器正在返回用户模型,而ember正在发送对数据的请求—看起来时间已经过了,当数据从服务器返回时,ember没有更新其记录。每次使用邮递员查询终结点时,服务器都会正确响应。如果已完成:true
和内容:null
,则服务器响应、序列化程序或适配器出错!与灰烬检查员一起检查。还要检查两个服务器响应。用户
和服务器
.Im使用“开箱即用”序列化程序(我还没有编写)和默认的JSONAPIAdapter
,只配置了主机。来自服务器的用户响应也是正确的。用户模型有两个有许多关系,在这种情况下我需要声明相反的关系吗?