尝试根据我当前的控制器或当前路线(URL Segment 1)设置一个类。
类似
<body class="{{controllerName}}">
如果我需要针对CSS特异性定位单独的页面,那么就很容易。
答案 0 :(得分:33)
我的解决方案是:在路由范围订阅路由更改并将控制器的名称放在那里:
app.run(function($rootScope) {
$rootScope.$on('$routeChangeSuccess', function(ev,data) {
if (data.$route && data.$route.controller)
$rootScope.controller = data.$route.controller;
})
});
答案 1 :(得分:5)
您可以使用$route服务,它具有current
属性,可以为您提供当前控制器。
答案 2 :(得分:3)
更简单。 controller
参数上直接有一个data
属性。
$rootScope.$on("$routeChangeSuccess", function(e, data) {
$rootScope.controller = data.controller;
});
据我所知,data
参数与$route.current
是同一个对象。 controller
属性位于该对象的原型中。
答案 3 :(得分:2)
对于Angular的1.3版,您可以使用以下代码:
$rootScope.$on('$routeChangeSuccess', function (ev, data) {
if (data.$$route && data.$$route.controller)
$rootScope.controller = data.$$route.controller;
});