28

尝试根据我当前的控制器或当前路由(URL 段 1)设置一个类。

就像是

<body class="{{controllerName}}">

这样,如果我需要针对 CSS 特定性定位单独的页面,它就很容易了。

4

4 回答 4

33

我的解决方案是:在路由范围内订阅路由更改并将控制器的名称放在那里:

app.run(function($rootScope) {
   $rootScope.$on('$routeChangeSuccess', function(ev,data) {   
     if (data.$route && data.$route.controller)
       $rootScope.controller = data.$route.controller;
   })
});

检查Plunker 解决方案

于 2013-01-08T17:48:23.770 回答
5

您可以使用$route服务,它具有current可以为您提供当前控制器的属性。

于 2013-01-08T17:13:58.667 回答
3

甚至更简单。参数上直接有一个controller属性data

$rootScope.$on("$routeChangeSuccess", function(e, data) {
    $rootScope.controller = data.controller;
});

据我所知,该data论点与$route.current. 该controller属性位于该对象的原型中。

于 2014-05-23T17:53:25.720 回答
2

对于 Angular 1.3 版本,您可以使用以下代码:

$rootScope.$on('$routeChangeSuccess', function (ev, data) {
    if (data.$$route && data.$$route.controller)
        $rootScope.controller = data.$$route.controller;
});
于 2014-05-05T15:22:07.133 回答