2015-03-28 2 views
1

Это моя функция angularjs doClick и по щелчку я хочу изменить класс div, который был нажат.Angularjs doclick change class текущего div

<div data-ng-repeat="a in analytics" style="background-color: {{a.Color}};" 
     ng-class="{'block1 current-block' : $index==0, 'block1' : !($index==0)}" 
     ng-click="myData.doClick(a, $event)"> 
<div> 

В моем коде angularjs я нахожу текущий активный класс и удаляю его. Это отлично работает, но я не знаю, как изменить класс текущего div.

Как я могу найти и изменить класс щелчка div? (я попытался с помощью JQuery (это) & $ (это), но любой из них не похоже на работу.)

$scope.myData.doClick = function(a, event) 
{ 

    alert("clicked" + a.Color +a.Feature + " @ " + event.clientX + ": " + event.clientY); 

    $scope.selectedItem = a.Feature; 

    for(j=0;j<$('#divHolder div.block1').length;j++) 
    { 
    console.log('Inside for loop',j,$('#divHolder div.block1').length); 

     if($('#divHolder div.block1:eq('+j+')').hasClass("current-block")==1) 
      { 
      console.log('Inside if statement',j); 

       $('#divHolder div.block1:eq('+j+')').removeClass('current-block'); 
       break; 
      } 

    } 

    console.log('final css addition',$(this)); 
    jQuery(this).addClass('current-block'); 

}; 
+2

Что-то вроде этого? http://plnkr.co/edit/jOKsJrM1oYcjl07UgC7W?p=preview – dfsq

+0

Да, это работает! Ty! –

ответ

0

Вы могли бы сделать что-то вроде:

ng-class="{current-block: a.Feature == $scope.selectedItem}"