수색…


ng-class 표현의 세 가지 유형

Angular는 ng-class 지시문에서 세 가지 유형의 표현식을 지원합니다.

1. 문자열

<span ng-class="MyClass">Sample Text</span>

문자열로 평가되는 표현식을 지정하면 Angular에게이를 $ scope 변수로 처리하도록 지시합니다. Angular는 $ 범위를 검사하고 "MyClass"라는 변수를 찾습니다. "MyClass"에 포함 된 텍스트는이 <span> 적용되는 실제 클래스 이름이됩니다. 각 클래스를 공백으로 구분하여 여러 클래스를 지정할 수 있습니다.

컨트롤러에서 다음과 같은 정의를 가질 수 있습니다.

$scope.MyClass = "bold-red deleted error";

Angular는 MyClass 라는 표현을 평가하고 $ 범위 정의를 찾습니다. <span> 요소에 "bold-red", "deleted"및 "error"의 세 클래스를 적용합니다.

이 방법으로 클래스를 지정하면 컨트롤러의 클래스 정의를 쉽게 변경할 수 있습니다. 예를 들어 다른 사용자 상호 작용이나 서버에서로드 된 새 데이터를 기반으로 클래스를 변경해야 할 수 있습니다. 또한 평가할 표현식이 많은 경우 $scope 변수에서 클래스의 최종 목록을 정의하는 함수에서 평가할 수 있습니다. 이것은 많은 평가를 HTML 템플릿의 ng-class 속성으로 집어 넣는 것보다 쉽습니다.


2. 개체

이 클래스는 ng-class 사용하여 클래스를 정의하는 가장 보편적 인 방법입니다.이 클래스를 사용하면 사용할 클래스를 결정하는 평가를 쉽게 지정할 수 있기 때문입니다.

키 - 값 쌍을 포함하는 객체를 지정하십시오. 키는 값 (조건부)이 true로 평가 될 때 적용될 클래스 이름입니다.

<style>
    .red { color: red; font-weight: bold; }
    .blue { color: blue; }
    .green { color: green; }
    .highlighted { background-color: yellow; color: black; }
</style>

<span ng-class="{ red: ShowRed, blue: ShowBlue, green: ShowGreen, highlighted: IsHighlighted }">Sample Text</span>

<div>Red: <input type="checkbox" ng-model="ShowRed"></div>
<div>Green: <input type="checkbox" ng-model="ShowGreen"></div>
<div>Blue: <input type="checkbox" ng-model="ShowBlue"></div>
<div>Highlight: <input type="checkbox" ng-model="IsHighlighted"></div>

3. 배열

배열로 평가되는 표현식을 사용하면 문자열 (위의 # 1 참조)과 조건부 객체 (위의 # 2)의 조합을 사용할 수 있습니다.

<style>
    .bold { font-weight: bold; }
    .strike { text-decoration: line-through; }
    .orange { color: orange; }
</style>

<p ng-class="[ UserStyle, {orange: warning} ]">Array of Both Expression Types</p>
<input ng-model="UserStyle" placeholder="Type 'bold' and/or 'strike'"><br>
<label><input type="checkbox" ng-model="warning"> warning (apply "orange" class)</label>

이렇게하면 사용자가 모든 클래스 이름을 입력 할 수있게하는 범위 변수 UserStyle 바인딩 된 텍스트 입력 필드가 만들어집니다. 이들은 사용자가 입력 할 때 <p> 요소에 동적으로 적용됩니다. 또한 사용자는 warning 범위 변수에 데이터 바인딩 된 확인란을 클릭 할 수 있습니다. 이것은 <p> 요소에도 동적으로 적용됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow