2014-02-06 2 views
1

Это, вероятно, очень распространенная задача, но я не уверен, что это правильный подход для решения этой проблемы.Рендеринг контроллера/шаблона/маршрута в другой шаблон

У меня есть настройка маршрута/контроллера/модели, которая загружает группы. В области заголовка перед основным содержимым я хочу показывать уведомления для пользователя. Я создал диспетчер уведомлений, который является контроллером массива, а также маршрут, который загружает все уведомления.

Я не хочу, чтобы этот маршрут использовался для чего-либо еще, кроме как внутри этой области.

Я уже пытался в моих 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

ответ

1

Шаблон, содержащий розетку хотите сделать в первую очередь, чтобы сделать в розетку. Вот пример рендеринга в именованной розетку, которая находится в application шаблоне из index маршрута:

http://emberjs.jsbin.com/qoyi/1/edit?html,js,output

Оставьте комментарий, если этот пример не ясно, это для вас.

+0

Хорошо, я пойму разницу, но все равно хочу сделать уведомление в своем групповом шаблоне, а не в шаблоне моего приложения, потому что я хочу показать его там. Это тоже возможно? – m0c

+0

Конечно. Вам просто нужно убедиться, что вы сначала визуализируете шаблон для маршрута, а затем визуализируете его в именованную розетку. Вот пример: http://emberjs.jsbin.com/qoyi/2/edit?html,js,output –

+0

Большое спасибо, теперь он работает, единственный вопрос заключается в том, как я мог бы также использовать маршрут уведомлений в заказать модель? – m0c

Смежные вопросы