2013-11-15 1 views
2

다른 AngularJS 새내기 질문입니다.AngularJS에서 부분을 사용하는 동안 신체 클래스 설정

저는 index.html, 컨트롤러 및 부분을 가지고 있습니다.

<body> 태그는 index.html에 있으며 ... 내 컨트롤러에서 본문의 클래스를 설정하고 싶습니다.

<!doctype html> 
<html lang="en" ng-app="myGreatApp"> 
... 
<body ng-class="{body_class}"> {{body_class}} Hi! 

그러나 body_class을 값을 반환하지 않습니다

그래서 나는 $scope.body_class에 값을 고집 다음과 같이 내 index.html을에서 그 변수를 참조했습니다.

body_class 값을 반환하려면 어떻게해야합니까?

답변

2

, 컨트롤러가 있어야한다 (또는 $ rootScope를 삽입하여 대신 사용해야합니다), ng-class 지시문은 해시를 허용하므로,

<body ng-controller="YourController" ng-class="{body_class: <expression>}"> {{body_class}} Hi! 
이렇게하면 지시어와 상호 작용할 수있는 요소 또는 부모 요소에 정의되어 있습니다

이고 이 thruthy 인 경우 해시의 키에 해당하는 class이 표시됩니다. 마크 업에서 클래스 이름을 선언 할 필요가없는 경우

<body ng-controller="YourController" ng-class="{body_class: true}" class="body_class"> whatever value $scope.body_class has Hi! 

은 NG 수준의 지시어는 또한 당신이 대신 할 수있는, 직접 바인딩을 허용합니다

<body ng-controller="YourController" ng-class="body_class"> {{body_class}} Hi! 

ng-class documentation

1

이 시도 :

컨트롤러

function SampleCtrl($scope){ 
$scope.MyClass = 'Hello' 
} 

우선 들어 HTML

<body data-ng-app="" data-ng-controller='SampleCtrl'> 
<div data-ng-class="MyClass">Hello World 
</div> 
</body> 

Sample JsFiddle

+0

당신이 사용하는 경우 '$ rootScope' 당신은 body 태그에 컨트롤러를 둘 필요가 없습니다. – Heikki

+0

샘플 용입니다. – Ravi

관련 문제