0
我在我的路線模型是這樣的:在異步完成的路由模型中調用findAll?
model: function() {
return {
"first-levels":this.get('store').findAll('student')
};
}
是的findAll叫,默認情況下,異步或同步?默認行爲是否可以被覆蓋?
我在我的路線模型是這樣的:在異步完成的路由模型中調用findAll?
model: function() {
return {
"first-levels":this.get('store').findAll('student')
};
}
是的findAll叫,默認情況下,異步或同步?默認行爲是否可以被覆蓋?
如果你返回正常的對象,那麼模型鉤子就不會等待Promise來重新調用,所以它會立即返回。
model: function() {
return {
"first-levels":this.get('store').findAll('student')
};
}
但是,如果你回到它像下面的,那麼模型鉤子將等待無極解決,
model: function() {
return this.get('store').findAll('student');
}
注:findAll
從商店得到的結果,並立即在背景回報,它將要求適配器再次獲取並更新商店。這個行爲可以通過使用this.get('store').findAll('student',{reload:true})
來控制更多細節請參考findAll api guide
就我所知他們兩個人都是一樣的(你有返回模型的方式),因爲在這兩種情況下最終我們返回this.get('store')。的findAll( '學生');只有格式不同(例如:當你從句柄中調用它時,第一個將稱爲model.first-levels,然後將以第二種調用方式等於模型) – Prageeth
閱讀此燼guide指南解釋https://guides.emberjs .com/v2.11.0/routing/specified-a-routes-model /'通常,模型鉤子應該返回一個Ember數據記錄,但它也可以返回任何承諾對象(Ember數據記錄是承諾),或者一個普通的JavaScript對象或數組。 Ember將在呈現模板之前等待數據完成加載(直到承諾解決)。 – kumkanillam
這是否僅僅表示當我調用this.get('store')。findAll('student')它實際上總是一個異步調用,它將在後臺運行,但是直到數據提取完成(直到解析爲止)模板纔會呈現。 – Prageeth