1

ここに ng-repeat に div があります

<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 値に従っています。

ここで、ng-repeat で作成された div のアクティブなクラスも変更したいのですが、他の作成された 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>

4

1 に答える 1

1

ngRepeat 内のすべてのアイテムに共通の外部スコープomega.harish値を変更しています。代わりにomega.harishwithngInitディレクティブのローカル スコープ コピーを作成します。

<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>
于 2015-07-14T06:20:32.467 に答える