반응형
여러 요소에서 ng 클릭으로 클래스 전환
ng-click으로 여러 요소에 대한 클래스를 개별적으로 전환하려면 어떻게 해야 합니까?
이 질문에서는 https://stackoverflow.com/a/22072110/2169327에서 클릭 한 번으로 클래스를 전환합니다.
CSS:
.red {
color: red;
}
JS:
$scope.toggle = false;
HTML:
<button id="btn" ng-click="toggle = !toggle" ng-class="{'red' : toggle}">Change Class</button>
하지만 각각의 클래스를 ng-click으로 전환해야 하는 버튼이 여러 개 있는 경우에는 어떻게 해야 합니까?
다음과 같이 설정하면:
HTML:
<button id="btn" ng-click="toggle = !toggle" ng-class="{'red' : toggle}">Change Class</button>
<button id="btn2" ng-click="toggle = !toggle" ng-class="{'red' : toggle}">Change Class</button>
하나를 누르면 두 개의 버튼이 모두 전환됩니다.
회피책은 각 버튼에 대해 독자적인 ng클릭이벤트(f.ex toggle1, button2의 toggle2)를 정의하는 것입니다만, 이것이 최선의 방법입니까?
테스트를 위한 간단한 지시를 내렸습니다.
module.directive('toggleClass', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.bind('click', function() {
element.toggleClass(attrs.toggleClass);
});
}
};
});
필요한 요소 전환 클래스를 만들 수 있습니다.
<button id="btn" toggle-class="active">Change Class</button>
<div toggle-class="whatever"></div>
고객의 요건에 따라서는,ng-repeat토글을 나타내는 배열이 있습니다.예를 들어 다음과 같습니다.
보기:
<div ng-repeat="toggle in toggles">
<button id="btn" ng-click="toggle.state = !toggle.state" ng-class="{'red' : toggle.state}">Change Class</button>
</div>
컨트롤러 내부:
$scope.toggles = [{ state: true }, { state: false }, { state: true }];
이렇게 하면 어레이 또는 내부 어레이 개체를 업데이트하는 것만으로 버튼 세트를 확장할 수 있습니다(복잡성이 더 필요한 경우).
내부 제어기
$scope.stateToggle=false;
$scope.togglelasses=function(){
$scope.stateToggle= !$scope.stateToggle;
}
표시 중 ng 클래스 사용
<button ng-click="togglelasses()" ng-class="stateToggle? 'active ': ' '">
클래스를 활성화하는 모든 요소에 ng-class를 추가합니다.
언급URL : https://stackoverflow.com/questions/25141139/toggle-class-with-ng-click-on-several-elements
반응형
'programing' 카테고리의 다른 글
| Travis/Jest:TypeError: 개체 '#'의 읽기 전용 속성 'Symbol(Symbol.toStringTag)'에 할당할 수 없습니다. (0) | 2023.03.31 |
|---|---|
| 모나코 에디터 동적 크기 조정 가능 (0) | 2023.03.31 |
| Woocommerce에 고객 주문 코멘트(고객 메모) 표시 (0) | 2023.03.31 |
| 웹 API를 통해 전송된 문자열은 따옴표로 둘러싸여 있습니다. (0) | 2023.03.31 |
| WordPress에서 .htaccess를 사용하여 후행 슬래시 제거 (0) | 2023.03.31 |