我似乎無法鍛鍊如何在Ember中正確加載關係。用戶模型僅返回一些時間。如果我刷新頁面,似乎有50/50的機會值將爲空,否則它將正確解析。Ember並不總是加載belongsTo
我明白我在返回承諾是服務器對象(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"
}
}
}
}
}
時間可以挑剔密切相關的模型。如果你對API有控制權,我會建議將用戶和服務器一起加載。 – NicholasJohn16