Изменение класса в ng-repeat с использованием значения индекса

Здесь у меня есть div в ng-repeat

<div   ng-class="{div0f:result.subscribed==omega.harish,div0g:!result.subscribed==omega.harish}" id="mecota0f" 
          ng-click="omega.harish=!result.subscribed" >

Здесь result.subscribed — это логическое значение, полученное от сервисов, а omega.harish — моя простая логическая переменная, класс этого div будет соответствовать значению result.subscribed.

Теперь я также хочу изменить активный класс одного из div, созданных в ng-repeat, но класс других созданных div продолжает подвергаться воздействию.

var app = angular.module('subscribeWho', ['ngResource']);
app.controller('mysubscribeWho', ['subscriberFactory',
  function(subscriberFactory) {

    var self = this;


    subscriberFactory.get({}, function(subscriberFactory) {
      self.subscriberdata = subscriberFactory.user;
    });


    self.harish = false;
  }
]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div id="border-forpb" class="col-sm-12 panel panel-default" ng-app="subscribeWho">
  <div class="panel-body" id="artle_panel_body" ng-controller="mysubscribeWho as omega">
    <div ng-repeat="result in omega.subscriberdata">
      <div ng-class="{div0f:result.subscribed==omega.harish,div0g:!result.subscribed==omega.harish}" id="mecota0f" ng-click="omega.harish=!result.subscribed">
      </div>
    </div>
  </div>


person harish kumar    schedule 14.07.2015    source источник
comment
Небольшие детали При нажатии на div состояния двух вышеуказанных классов div0f и div0g меняются местами для конкретного div.   -  person harish kumar    schedule 14.07.2015
comment
активный становится неактивным и наоборот   -  person harish kumar    schedule 14.07.2015


Ответы (1)


Вы меняете значение внешней области omega.harish, которое является общим для всех элементов в ngRepeat. Вместо этого создайте локальную копию omega.harish с директивой ngInit:

<div ng-repeat="result in omega.subscriberdata">
    <div ng-class="{div0f:result.subscribed==harish,div0g:!result.subscribed==harish}" id="mecota0f" 
        ng-init="harish = omega.harish"
        ng-click="harish=!result.subscribed">
    </div>
</div>
person dfsq    schedule 14.07.2015
comment
Большое спасибо !!!, это сработало. Просто будучи новичком в angularjs, я не смог отобразить эту ошибку. - person harish kumar; 14.07.2015
comment
Но у этого есть одна проблема: он изменяет только один класс, но не влияет на другой при нажатии - person harish kumar; 14.07.2015
comment
Что вы имеете в виду, влияет на другой при нажатии? - person dfsq; 14.07.2015
comment
Когда я нажимаю на Div с классом Div0f, он меняется на Div0g, но я нажимаю на Div с классом Div0g, он не меняет активный класс - person harish kumar; 14.07.2015
comment
спасибо С небольшими изменениями Dfsq Ваш код стал работать по моему требованию - person harish kumar; 14.07.2015