我知道您可以使用Router.current().route.getName()
获取当前路线的名称,但如何获取当前路线的名称控制器?
以下是我如何定义控制器的示例:
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中,这根本不理想。如果我可以获得控制器名称,我可以在CSS中使用body.QuantifyController {...}
,这是更理想的。
答案 0 :(得分:3)
知道了!经过几个小时的搜索,我发现它定义于:
<强> Router.current().route.options.controller
。强>
请注意,如果当前控制器是默认控制器(RouteController
),您将获得undefined
。
@SG_你的评论帮助我到达那里。再次感谢。