所以,我的路線中有兩條路徑。我創建了兩條路線,分別爲doc recommends。Ember不會調用路由器的setupController
我的路由器是以下幾點:
// router.js
Router.map(function() {
this.route('photos');
this.route('photo', { path: '/photo/:photo_id' });
});
如果我首先參觀路線/照片/ ID,然後去/照片,它只會顯示在後者的對象。 (錯誤)
如果我先訪問/照片,它會顯示所有對象,稍後我可以轉到/ photo/ID,這樣會很好。 (right)
我想讓它工作在兩種方式。這個怎麼做?你可以看到我的代碼下面下來每條路線:
// photo.js
export default Ember.Route.extend({
model(params) {
return this.get('store').findRecord('photo', params.photo_id);
}
});
// photos.js
export default Ember.Route.extend({
setupController(controller, model) {
let photos = this.get('store').findAll('photo');
console.log('add all...');
// convert to an array so I can modify it later
photos.then(()=> {
controller.set('photos', photos.toArray());
});
},
});
我可以隨時撥打findAll()
功能無論在哪裏的用戶進入,但我不認爲這是聰明的。
我處理與頁面過渡方式:
要轉到照片我用:
{{#link-to 'photos'}}All{{/link-to}}
要進入/照片/ ID我注入了服務「-routing」我用在一個事件點擊這樣的:
routing: Ember.inject.service('-routing'),
actions() {
selectRow(row) {
this.get("routing").transitionTo('photo', [row.get('id')]);
}
}
你是如何調用link-to進行過渡的?如果你提供'model'或任何對象,那麼它將不會調用模型鉤子和setupController掛鉤 – kumkanillam
我會添加到問題,因爲它在評論中變得很奇怪 – mk2
難道是因爲你沒有設置model()in photos.js因此你的模型沒有更新? – Cameron