2013-11-28 3 views
0

범위 내에서 요소를 대상으로 지정하고 클래스 이름이나 스타일을 변경하는 간단한 방법이 있습니까?ng-click을 사용하여 범위 내의 대상 요소

저는 Jquery를 사용하여 단순히 .parent(). find를 사용하여 상대적인 요소를 대상으로 지정하지만 아주 간단한 작업을 수행해야하는 간단한 솔루션을 찾을 수 없습니다.

대부분의 솔루션은 매우 복잡해 보이고 앵글을 사용하면 많은 코드가 필요하지 않습니다.

ng-click 요소를 기준으로 타겟팅하거나 범위의 루트에서 새 클래스 이름을 적용하고 싶습니다.

여기에 H1 클래스를 변경하기위한 버튼이 필요한 매우 기본적인 시나리오가 있습니다.

<div> 
    <h1 class="Blue">Welcome</h1> 
    <ul> 
     <li> 
      <button ng-click="myFunction()">Change H1 to Red</button> 
     </li> 
    </ul> 
</div> 

어떤 조언을 주시면 감사하겠습니다. 당신은, 그러나

$scope.myFunction = function() { 
    $scope.clicked = true; 
} 

:

HTML :

<div> 
    <h1 ng-class="{Blue: !clicked, Red: clicked}">Welcome</h1> 
    <ul> 
     <li> 
      <button ng-click="myFunction()">Change H1 to Red</button> 
     </li> 
    </ul> 
</div> 

컨트롤러

답변

8

것은 당신이 클래스를 전환하는 경우는 ng-class를 사용하고 일부 재산에 전환하는 것이 가장 좋습니다 함수에서 $event을 전달할 수 있습니다. 이렇게함으로써 원시 요소도. 이 일을 할 수있는 "각도"방법이없는 것, 비록 :

HTML :

<button ng-click="myFunction($event)">Change H1 to Red</button> 

컨트롤러 :

$scope.myFunction = function(e) { 
    console.log(e.srcElement); 
} 
+1

+1'$의 event'합니다. 나는 그것에 대해 몰랐다. –

+0

고마워요. 둘 다 사용하고 있지만 첫 번째 예제는 내 필요에 맞는 것입니다. – Paul