2016-04-01 12 views
0

私のデータのフィールドが正しく色付けされていない理由がわかりません。私は論理より単純なものを使って、緑色か赤色のngクラスを割り当てました。私はデバッグ行を追加して、関数内で値が正しいことを確認し、ブール値が正しいことを確認しましたが、メインページの項目は「ランダムに」誤って色付けされています。助けて?ng-repeatは着色要素が正しくありませんか?

同じ結果を持つparseInt()などのように、値にいくつかの異なるものを試しました。以下のようになり、関係なく、私は関数の中に置く何それは私が問題を作成している感じ

  <table> 
       <th><input class="search" type="text" ng-model="searchKey" placeholder="Character" ng-change="setClickedRow(-1)"></th> 
       <th ng-click="setSort('pval1')"> 
        <div ng-app="KIdash" ng-controller="controller"> 
        Total Matches: {{TotalMatchesFunc()}} 
        </div> 
       </th> 
       <th ng-click="setSort('pval2')">Wins</th> 
       <th ng-click="setSort('pval3')">Losses</th> 
       <tbody ng-repeat="ps in PlayerStats | orderBy: sortKey | filter:searchKey"> 
        <tr ng-class="{'main-row-selected': $index == selectedRow,'main-row': $index != selectedRow}" ng-click="setClickedRow($index)"> 
         <td>{{ps.name}}</td> 
         <td>{{ps.pval1}}</td> 

         <!-- *** THIS IS THE PART THAT ISNT WORKING CORRECTLY *** --> 
         <td ng-class="{'green': GreaterWins({{$index}}),'red': !GreaterWins({{$index}})}">{{ps.pval2}}</td> 

         <td>{{ps.pval3}}</td> 
        </tr> 

        <!-- *** COULD THIS SECOND FUNCTION CALL BE POLLUTING MY RESULTS? *** --> 
        <tr ng-class="{'extra-row-green': GreaterWins({{$index}}),'extra-row-red': !GreaterWins({{$index}})}" ng-show="selectedRow == $index"> 
         <td>Detail: {{ps.detail_p1}}</td> 
         <td>Detail: {{ps.detail_p2}}</td> 
         <td>Detail: {{ps.detail_p3}}</td> 
         <td>Detail: {{ps.detail_p4}}</td> 
        </tr> 
       </tbody> 
      </table> 


$scope.GreaterWins = function(z) { 
    console.log("bool " 
     + Boolean($scope.PlayerStats[z].pval2 > $scope.PlayerStats[z].pval3) 
     + " " 
     + $scope.PlayerStats[z].pval2 + "vs" + $scope.PlayerStats[z].pval3); 

    return Boolean($scope.PlayerStats[z].pval2 > $scope.PlayerStats[z].pval3)); 
}; 
+0

も試み: {{PS。 pval2}} –

+0

問題はorderByの周りを回っているようです:sortKey –

+0

あなたを助けるかもしれないhttp://stackoverflow.com/questions/36185017/selected-table-row-angular-js/36185644#36185644 –

答えて

1

2つのことを予想以上にさまざまな色を表示しません。

  1. 代わりngRepeatが孤立スコープを作成するように変数PSに合格する必要がある関数でインデックスを渡します。時間があるので問題があります。
  2. 変数selectedRowは、継承と2つのデータバインディングで問題があるプリミティブ変数としてオブジェクトである必要があります。

あなたのコードがうまくいくはずです。

関連する問題