如何通过单击 ng-repeat 中的元素来更改其他元素 类

How to change other element classes by clicking on an element inside ng-repeat

我在 angularjs 中有一个 ng-repeat 代码,如下所示:

<th ng-repeat="row in results.rows track by $index">
  {{row.name | translate}}
  <a class="sort" 
     ng-click="orderResultDataEvent($index)" 
     ng-if="results.tableOptions.sortable">
    <i ng-class="{'icon icon-exc-column-hover-sort': row.isReverseOrder == null,'icon icon-exc-sort-numeric-1-9': row.isReverseOrder === false , 'icon icon-exc-sort-numeric-9-1': row.isReverseOrder === true }" 
       class="text-white" 
       aria-hidden="true">
    </i>
  </a>
</th>

还有这样的结果 table:

我在看的是:当用户点击第一列进行排序时,其他列的图标将像第一列一样更改为默认图标。和第一列的图标,将更改为已排序的图标。

现在发生的情况是,当用户单击第一列排序图标时,其他图标不会更改。

你可以试试下面的代码。您还可以检查 this plunker 以了解您的工作示例场景。

模板:

<th ng-repeat="hed in results.header track by $index"  ng-click="setSelected($index)">
   {{hed.value}}
   <a class="sort">
      <span class="actual" ng-class="{'toggle': $index === selectedId }">#</span>
   </a>
</th>

控制器:

$scope.selectedId = null;
$scope.setSelected = function($index) {
   $scope.selectedId = $index;
   console.log($scope.selectedId);
}