Я знаю, что вы можете получить имя текущего имени маршрута с помощью Router.current().route.getName()
, но как я могу получить имя текущего контроллера ??Iron Router: Получить имя текущего контроллера
Вот пример того, как я определяю мой контроллер (ы):
Router.configure
layoutTemplate: 'LayoutFluid'
yieldRegions:
"footer": {to: "footer"}
"header": {to: "header"}
@QuantifyController = RouteController.extend
layoutTemplate: "LayoutSidebar"
yieldRegions:
"footer": {to: "footer"}
"header": {to: "header"}
"QuantifyMenu": {to: "sidebar"}
action: ->
@render()
Router.map ->
@route "Home",
path: "/"
@route "Blog",
path: "/blog"
@route "QuantifyIndex",
path: "/quantify"
controller: "QuantifyController"
@route "QuantifyNewProject",
path: "/quantify/new"
controller: "QuantifyController"
@route "Quantify..." #you get the idea
FWIW, причина мне нужно, чтобы получить это для целей CSS. Я добавляю имя маршрута как класс css в тело, а это означает, что при определении общих стилей для просмотров, которые используют QuantifyController
, мне нужно сделать body.QuantifyIndex, body.QuantifyNewProject, body.Quantify...
, что означает, что каждый раз, когда я добавляю новый маршрут Quantify..
, мне нужно также добавить его в css, который просто не идеален. Если я могу получить имя контроллера, я могу просто использовать body.QuantifyController {...}
в CSS, который намного более идеален.
Попробуйте ** Router.current(). Route.controller **. –
Как вы назовете ваш контроллер в первую очередь? Поставка такого имени, как вы для маршрута, не окажет никакого эффекта. – richsilv
@SG_ 'Router.current(). Route.controller' возвращает' undefined' для меня. Может быть, мои маршруты определены неправильно? Все работает как шарм, хотя .. никаких ошибок нигде. –