programing

현재 루트명/컨트롤러를 기반으로 클래스를 설정하는 방법

css3 2023. 3. 21. 22:25

현재 루트명/컨트롤러를 기반으로 클래스를 설정하는 방법

현재 컨트롤러 또는 현재 경로에 따라 클래스를 설정하려고 합니다(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;
   })
});

체크 플런커 솔루션

$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;
});

언급URL : https://stackoverflow.com/questions/14220244/how-to-set-class-based-on-current-route-name-controller