728x90
반응형
질문 : AngularJS ngClass 조건부
ng-class
와 같은 것을 조건부로 표현하는 방법이 있습니까?
예를 들어, 다음을 시도했습니다.
<span ng-class="{test: 'obj.value1 == \'someothervalue\''}">test</span>
이 코드의 문제는 obj.value1
이 무엇이든 클래스 테스트가 항상 요소에 적용된다는 것입니다. 이렇게 :
<span ng-class="{test: obj.value2}">test</span>
obj.value2
가 진실 값과 같지 않으면의 클래스가 적용되지 않습니다. 이제 다음을 수행하여 첫 번째 예제의 문제를 해결할 수 있습니다.
<span ng-class="{test: checkValue1()}">test</span>
checkValue1
함수는 다음과 같습니다.
$scope.checkValue1 = function() {
return $scope.obj.value === 'somevalue';
}
ng-class
가 작동하는 방식인지 궁금합니다. 이와 비슷한 작업을 수행하려는 사용자 지정 지시문도 작성 중입니다. 그러나 나는 표현을 보는 방법을 찾을 수 없습니다 (그리고 그것은 불가능하고 이것이 왜 이렇게 작동하는지 이유).
내가 의미하는 바를 보여주는 plnkr이 있습니다.
답변
첫 번째 시도는 거의 옳았습니다. 따옴표 없이도 작동합니다.
{test: obj.value1 == 'someothervalue'}
다음은 plnkr 입니다.
ngClass 지시문은 진실 또는 거짓을 평가하는 모든 표현식에서 작동합니다. Javascript 표현식과 약간 비슷하지만 약간의 차이점이 있습니다. 여기에서 읽을 수 있습니다. 조건부가 너무 복잡하면 세 번째 시도에서했던 것처럼 진실 또는 거짓을 반환하는 함수를 사용할 수 있습니다.
보완하기 위해 : 논리 연산자를 사용하여 다음과 같은 논리식을 형성 할 수도 있습니다.
ng-class="{'test': obj.value1 == 'someothervalue' || obj.value2 == 'somethingelse'}"
출처 : https://stackoverflow.com/questions/16529825/angularjs-ngclass-conditional
728x90
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
다중 코어 시스템의 Node.js (0) | 2021.10.06 |
---|---|
JavaScript에서 여러 줄 문자열 만들기 (0) | 2021.10.06 |
mailto :를 사용하여 이메일 제목 / 내용을 설정하는 방법 (0) | 2021.10.01 |
Polymer 요소와 AngularJS 지침의 차이점 (0) | 2021.10.01 |
Angular.js와 함께 Require.js를 사용하는 것이 합리적인가? (0) | 2021.10.01 |