Мой макет страницы (шаблон приложения) выглядит так (упрощенно):
Я использую его для разных маршрутов (список предложений + предложение, список клиентов + детали клиента). Списки отображаются в выводе для суб-навигации.
Мой код маршрутизатора:
App.Router.map(function () {
//...
this.resource('offers', function () {
this.resource('offer', { path: '/:offer_id' });
});
}
Мои маршруты:
App.OffersRoute = Ember.Route.extend({
model: function () {
return App.Offer.find();
},
renderTemplate: function (controller, model) {
this.render('offer-list', {
into: 'application', outlet: 'sub-navigation', controller: 'offers' });
this.render('offer-list-title', { into: 'application', outlet: 'page-title' });
this.render('offer-list-content', { into: 'application' });
}
});
App.OfferRoute = Ember.Route.extend({
model: function (params) {
return App.Offer.find(params.offer_id);
},
renderTemplate: function () {
this.render('offer-title', { into: 'application', outlet: 'page-title' });
this.render('offer-content', { into: 'application' });
}
});
Теперь это работает до сих пор.
http://.../#/offers
показывает список и заголовок "Резюме предложения" и статический html-контент. Я нажимаю на одно из предложений в списке, перейдя в
http://.../#/offers/23
все в порядке: он по-прежнему показывает список предложений в области суб-навигации и правильный заголовок и содержание предложения.
Теперь моя проблема:
Если я вернусь к
http://.../#/offers
(с помощью помощника #linkTo в меню), тогда область {{outlet}}/content становится пустой (а не статический html от ранее), а заголовок по-прежнему является заголовком в {{page-title}} предложения /23 маршрута.
Как я могу позволить моему приложению "повторно отобразить" шаблон, как определено в OfferRoute renderTemplate()
?
P.S.: Я использую Ember.js 1.0.0-RC.3