現在のコントローラーまたは現在のルート(URLセグメント1)に基づいてクラスを設定しようとしています。
何かのようなもの
<body class="{{controllerName}}">
そうすれば、CSSの特定性のために別のページをターゲットにする必要がある場合に備えて、それが簡単になります。
私の解決策は次のとおりです:ルートスコープでルートの変更をサブスクライブし、コントローラーの名前をそこに入力します。
app.run(function($rootScope) {
$rootScope.$on('$routeChangeSuccess', function(ev,data) {
if (data.$route && data.$route.controller)
$rootScope.controller = data.$route.controller;
})
});
チェック Plunker solution
$ route サービスを使用できます。現在のコントローラーを提供するcurrent
プロパティがあります。
さらに簡単です。 controller
引数には直接data
プロパティがあります。
$rootScope.$on("$routeChangeSuccess", function(e, data) {
$rootScope.controller = data.controller;
});
私の知る限りでは、data
引数は$route.current
と同じオブジェクトです。 controller
プロパティは、そのオブジェクトのプロトタイプにあります。
Angularのバージョン1.3では、次のコードを使用できます。
$rootScope.$on('$routeChangeSuccess', function (ev, data) {
if (data.$$route && data.$$route.controller)
$rootScope.controller = data.$$route.controller;
});