0

何NGリピートの内側に平等のための2つの異なるオブジェクトを比較するための最良の方法は、なぜangular.equalsはここに私のために動作しませんです。ngのリピート内の2つの異なるオブジェクトのために比較する方法を

<tr ng-repeat="row in ctrl.filteredItems" ng-class="{'active':angular.equals(row,ctrl.ngModel), 'focus': angular.equals(row,ctrl.focusedRow)}"> 
     <td ng-repeat="value in ctrl.sort(row) track by $index" class="text-center"> 
      {{value}} 
     </td> 
</tr> 

現在の行とコントローラからのあらかじめ選択された行が一致する場合は、アクティブなクラスを追加します。

+0

。ビューではなく、コントローラーで行うことをお勧めします。そこでは値を比較し、必要な値だけをビューに渡します。 – stevenvanc

+0

ng-repeatで各行と比較する必要があります。私はコントローラで上記のことをどうやってしますか? – bschmitty

答えて

2

JSでangular.equals(obj1、obj2)を実行する関数を記述し、この関数を使ってアクティブであるかどうかをチェックしますか?あなたは、いくつかのロジックを追加する追加したい

HTML

<tr ng-repeat="row in ctrl.filteredItems" ng-class="{'active': checkEqualiy(row, ctrl.ngModel), 'focus': checkEquality(row,ctrl.focusedRow)}"> 
    <td ng-repeat="value in ctrl.sort(row) track by $index" class="text-center"> 
     {{value}} 
    </td> 
</tr> 

JS

$scope.checkEquality= function(param1, param2){ 
    return angular.equals(param1, param2) 
} 
+0

ありがとうございましたArun – bschmitty

関連する問題