Вопрос

I have html elements that created by ng:repeat . I need to change 'active' class in ng-click from all other elements and need to add class in that particular element where the event occoured.

<ul class="paginate">
   <li ng-repeat="value in pageList">
       <a ng-class="{active : $first, item : true}"  ng-click="clickedPage(value)">{{value}}</a>
  </li>
</ul>

Here first <a> has 'active' class. I need to remove 'active' class from <a> and need to add same class if i clicked in <a> that has no 'active' class.

Это было полезно?

Решение

Try like this:

$scope.activeValue;
$scope.clickedPage = function(value){
    $scope.activeValue = value;
    // other oeprations
};

html:

<a ng-class="{active : activeValue === value}"  ng-click="clickedPage(value)">
    {{value}}
</a>

Другие советы

I only change/remove the class:

 function removeClass() {
                var element = angular.element('#nameInput');
      element.removeClass('nameClass');
 };

    filter('addclass',function(){
    return function(activeValue,value){
        if(activeValue==value)
           return "active";
        else
           return "";
    }
    });
<a class="{{activeValue|activeValue:value}}"  ng-click="clickedPage(value)">
        {{value}}
</a>

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top