2014-08-28 1 views
1

각도 웹 앱에서 부트 스트랩 아코디언을 사용 중이고 붕괴/확장 아이콘 전환시 버그를 처리하는 게시물을 보았습니다 (체크 아웃 : post).Angular에서 jQuery를 사용 : 이것에 대해 나쁜 점이 있습니까?

이 게시물에는 간단한 jQuery와 관련된 수정 사항이 언급되어 있습니다. 그 코드는 다음과 같습니다.

$('.accordion-toggle').click(function() { 
    if($(this).hasClass('collapsed')) { 
     $('.accordion-toggle').not(this).addClass('collapsed'); 
    } 
}); 

Angular 웹 응용 프로그램에서 위의 jQuery 수정을 사용하는 것에 대해 권장 할만한 것이 있습니까? 그렇다면 Angular를 사용하여이 버그에 대해 권장되는 수정 사항은 무엇입니까?

+3

[그래서 각도 ui 부트 스트랩에는 아코디언이 있습니다.] (http://angular-ui.github.io/bootstrap/#/accordion) DOM에 액세스하지 않아도됩니다. – PSL

답변

1

의 부품하여이를 분석해 보겠습니다 :

<div ng-click="toggleAccordion()">Toggle accordion!</div> 
<div ng-class="{collapsed: isToggled}"><!-- data --></div> 

2 ° 그리고이

$('.accordion-toggle').not(this).addClass('collapsed'); 
:이

$('.accordion-toggle').click(function() { 

실제로 DOM이 같은 뭔가를해야

1 °

해야합니다. 컨트롤러에서 이와 같이 될 수 있습니다.

$scope.toggleAccordion = function(){ 
    $scope.isToggled = !$scope.isToggled; 
} 

이렇게하면 솔루션이 반드시 필요하지 않고 선언적입니다. 건배!

PD :이 작업을 수행하는 또 다른 방법은 전체 DOM 일 수 있지만 그다지 마음에 들지 않습니다.

<div ng-click="isToggled = !isToggled">Toggle accordion!</div> 
<div ng-class="{collapsed: isToggled}"><!-- data --></div> 
+0

감사합니다. 방금이 답변을 투표에 표시했습니다. 깨끗하고 적절합니다. 그러나 위의 PSL의 의견에서 나는 Bootstrap의 Angular 구현을 살펴 보았습니다. 아마도 Angular 구현을 사용할 수없는 이유가 있기 때문에이를 백업으로 유지할 것입니다. –

+0

괜찮습니다. 걱정하지 마세요. 나는 가르치고 설명하는 것을 좋아하기 때문에 나는 여기서 질문에 대답하고 있습니다! 평판 포인트와 확인 된 답변은 사이트와 함께 제공되는 보너스입니다. P – HeberLZ