如何基于当前的路由名称/控制器上设置类(How to set class based on curr

2019-08-06 02:37发布

基于尝试我的电流控制器或电流路径(URL段1)上设置的一类。

就像是

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

这样的情况下,我需要为目标的CSS特异性单独的页面,它很容易。

Answer 1:

我的解决办法是:订阅路由变化在航线范围,把控制器存在的名称:

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

检查Plunker解决方案



Answer 2:

您可以使用$路由服务,它具有current特性,这将给你目前的控制器。



Answer 3:

更简单。 有一个controller直接财产上的data参数。

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

作为最好的,我可以告诉大家,该data参数是相同的对象$route.current 。 所述controller属性是在原型该对象。



Answer 4:

对于角的1.3版本中,你可以使用这段代码:

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


文章来源: How to set class based on current route name/controller