我有一個嵌套的路由,刷新時會丟失模型並顯示空白頁。碼如下:Ember - 嵌套的子路由在路由刷新/重新加載時丟失模型
路由器:
app.Router.map(function(){
this.resource('main',{path:''}, function(){
this.route('summary',{path:'/main/summary'},function(){
this.route('details',{path:'/details'})
})
})
})
文件結構:
-app
-route
-main-route.js
-main-summary-route.js
-main-summary-index-route.js
-main-summary-details-route.js
-main-loading-route.js
-controller
-main-controller.js
-main-summary-controller.js
-main-summary-index-controller.js
-main-summary-details-controller.js
-templates
-main
-summary
-index.hbs
-details.bhs
-summary.hbs
-loading.hbs
-main.hbs
-application.hbs
附圖有關代碼: 模板main.hbs和application.hbs有{{outlet}} d在他們中定義。 summary.hbs也包含{{outlet}},因此當url/main/summary被點擊時,它只顯示summary/index.hbs中的內容,以及何時點擊url/main/summary/details,它僅通過渲染成摘要來顯示詳細信息。
我的ajax調用進入「main-summary-route」的模型鉤子,而它的等待,我顯示加載模板。 「main-summary-details-controller.js」擴展自「main-summary-index-controller.js」,以便代碼可以被重用。 類似地,「主彙總細節-route.js」獲取經由模型鉤相同的模型作爲一個在「主概要-route.js」詳細路線作爲 -
model: function(){
return this.modelFor('mainSummary')
}
這是因爲ajax調用匯總了彙總和路由的數據。
問題陳述:當我點擊url main/summary時,我得到頁面,然後從那裏點擊,轉到main/summary/details,我看到頁面更新了詳細信息,但是當我在瀏覽器中手動刷新這個(/ main/summary/details),頁面是空白的,我注意到這次在細節路由中沒有模型鉤子返回的模型。
我的解決方案想法: 我認爲這將理想的工作,因爲在刷新,它會要求彙總路由第一(同父子的關係是),調用AJAX(一起加載),當數據來自通過它會顯示細節。但我想那不會發生。
我不明白,至於什麼是錯的。我想到的想法是,我是否需要在細節路線中捕捉刷新事件並再次調用ajax,以便獲取數據。使用
灰燼版 - 1.13.0