我知道您可以使用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 ideaFWIW,我需要得到这个是为了CSS的目的。我将路由的名称作为css类添加到主体中,这意味着当为使用QuantifyController的视图定义共享样式时,我需要执行body.QuantifyIndex, body.QuantifyNewProject, body.Quantify...,这意味着每次我添加一个新的Quantify..路由时,我也需要将它添加到css中,这是非常不理想的。如果我能得到控制器的名称,我只需要在CSS中使用body.QuantifyController {...},这就更理想了。
发布于 2014-11-19 23:02:44
明白了!经过几个小时的搜索,我发现它定义在:
Router.current().route.options.controller**.**
注意,如果当前控制器是默认控制器(RouteController),您将得到undefined。
@SG_你的评论帮了我的忙。再次感谢。
https://stackoverflow.com/questions/27007958
复制相似问题