Essayer de définir une classe en fonction de mon contrôleur actuel ou de mon itinéraire actuel (segment d'URL 1).
quelque chose comme
<body class="{{controllerName}}">
De cette façon, au cas où je devrais cibler des pages distinctes pour la spécificité CSS, cela facilite les choses.
Ma solution serait: abonnez-vous aux changements de route à la portée de la route et mettez le nom du contrôleur là:
app.run(function($rootScope) {
$rootScope.$on('$routeChangeSuccess', function(ev,data) {
if (data.$route && data.$route.controller)
$rootScope.controller = data.$route.controller;
})
});
Vérifiez solution Plunker
Vous pouvez utiliser le service $ route , il a la propriété current
qui vous donnera le contrôleur actuel.
Encore plus simple. Il y a une propriété controller
directement sur l'argument data
.
$rootScope.$on("$routeChangeSuccess", function(e, data) {
$rootScope.controller = data.controller;
});
Autant que je sache, l'argument data
est le même objet que $route.current
. La propriété controller
se trouve dans le prototype de cet objet.
Pour la version 1.3 d'Angular, vous pouvez utiliser ce morceau de code:
$rootScope.$on('$routeChangeSuccess', function (ev, data) {
if (data.$$route && data.$$route.controller)
$rootScope.controller = data.$$route.controller;
});