사용하여 요소의 클래스를 전환하려고합니다. ng-class
<button class="btn">
<i ng-class="{(isAutoScroll()) ? 'icon-autoscroll' : 'icon-autoscroll-disabled'}"></i>
</button>
isAutoScroll () :
$scope.isAutoScroll = function()
{
$scope.autoScroll = ($scope.autoScroll) ? false : true;
return $scope.autoScroll;
}
기본적으로, $scope.autoScroll
사실이라면 ng-class가 icon-autoscroll
되고 싶고 거짓이면 내가되고 싶습니다.icon-autoscroll-disabled
내가 지금 작동하지 않고 콘솔 에서이 오류가 발생합니다.
Error: Lexer Error: Unexpected next character at columns 18-18 [?] in expression [{(isAutoScroll()) ? 'icon-autoscroll' : 'icon-autoscroll-disabled'}].
이 작업을 올바르게 수행하려면 어떻게합니까?
편집하다
해결책 1 : (구식)
<button class="btn" ng-click="autoScroll = !autoScroll">
<i ng-class="{'icon-autoscroll': autoScroll, 'icon-autoscroll-disabled': !autoScroll}"></i>
</button>
편집 2
해결책 2 :
Solution 3
Stewie에서 제공 하는 솔루션을 사용해야합니다. 삼항 연산자와 관련하여 가장 읽기 쉬운 표준입니다. 해결책은
<button class="btn" ng-click="autoScroll = !autoScroll">
<i ng-class="autoScroll ? 'icon-autoscroll' : 'icon-autoscroll-disabled'"></i>
</button>
다음과 같이 번역됩니다.
if (autoScroll == true) ?
// 클래스 사용 'icon-autoscroll' :
// 다른 용도'icon-autoscroll-disabled'
autoScroll
여기에 각 버튼에 영향을 미치는지 궁금 합니다. (여러 버튼으로 이것을 테스트했으며 잘 작동합니다.) 각 버튼을 클릭하면 모든 버튼 대신 해당 버튼에만 영향을 미칩니다.
angular expressions
문서별로 조건을 사용할 수 없음 => 제어 흐름 문 없음 : 각도 표현에서 조건부, 루프 또는 throw 중 하나를 수행 할 수 없습니다. 다른 함수 또는 지시어 사용