Это, вероятно, очень распространенная задача, но я не уверен, что это правильный подход для решения этой проблемы.Рендеринг контроллера/шаблона/маршрута в другой шаблон
У меня есть настройка маршрута/контроллера/модели, которая загружает группы. В области заголовка перед основным содержимым я хочу показывать уведомления для пользователя. Я создал диспетчер уведомлений, который является контроллером массива, а также маршрут, который загружает все уведомления.
Я не хочу, чтобы этот маршрут использовался для чего-либо еще, кроме как внутри этой области.
Я уже пытался в моих groups.hbs добавить дополнительный {{ outlet notification }}
и попытаться сделать в нем:
App.GroupsRoute = GambifyApp.BaseRoute.extend({
model: function() {
return this.get('store').find('group');
},
renderTemplate: function() {
this.render('notifications', { // the template to render
// into: 'notifications', // the route to render into
outlet: 'notification', // the name of the outlet in the route's template
controller: 'notifications', // the controller to use for the template
});
this.render('groups');
}
});
Но каким-то образом мой шаблон уведомления не используется. На данный момент в моем NotificationController не так много (это ArrayController), NotificationsRoute читает только все уведомления как Модель, и в настоящий момент шаблон является только текстом, который не отображается в моих группах. Hbs
Хорошо, я пойму разницу, но все равно хочу сделать уведомление в своем групповом шаблоне, а не в шаблоне моего приложения, потому что я хочу показать его там. Это тоже возможно? – m0c
Конечно. Вам просто нужно убедиться, что вы сначала визуализируете шаблон для маршрута, а затем визуализируете его в именованную розетку. Вот пример: http://emberjs.jsbin.com/qoyi/2/edit?html,js,output –
Большое спасибо, теперь он работает, единственный вопрос заключается в том, как я мог бы также использовать маршрут уведомлений в заказать модель? – m0c