铁路由器:获取当前控制器的名称

时间:2014-11-19 02:33:33

标签: meteor iron-router

我知道您可以使用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 {...},这是更理想的。

1 个答案:

答案 0 :(得分:3)

知道了!经过几个小时的搜索,我发现它定义于:

<强> Router.current().route.options.controller

请注意,如果当前控制器是默认控制器(RouteController),您将获得undefined

@SG_你的评论帮助我到达那里。再次感谢。