2016-11-19 16 views
0

私はこのコードをanglejsアプリにテーブルに含めます。インデックスが0,1,2のみの場合は、「rare」クラスをアクティブにします。索引は行です。テーブルに8列あるとしましょう。その中の最初の3つのクラスだけがそれに適用されるクラス「rare」を持つ必要があります。ng-classのチェックで複数の場合

ng-class="{rare : $index === 0, rare : $index === 1, rare : $index === 2}"

しかし、それを書くのが容易/短い方法は何ですか? これは良い方法ですか?私はそれが動作していても、それは非常に良いようだとは思わない。 ifチェックをどのように書いていますか?

私が試した:

ng-class="{rare : $index === {0,1,2}}をそれはあなたが値のリストを持っている場合は、このような何かを行うことができ

+0

@rickねえアストリー - 私の答えをチェックアウト - あなたは別の答えを受け入れているにもかかわらず - 鉱山は非常に簡単ですあなたのためのオンラインソリューションです。 – gavgrif

答えて

0

を動作しませんでした。

var app = angular.module("sampleApp", []); 
 

 
app.controller("sampleController", ["$scope", 
 
    function($scope) { 
 
    $scope.data = "Test"; 
 
    $scope.rareList = [1, 2, 3]; 
 
    $scope.val1 = 2; 
 
    $scope.val2 = 5; 
 
    } 
 
]);
.active { 
 
    color: red; 
 
} 
 
.not-active { 
 
    color: blue; 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script> 
 
<div ng-app="sampleApp"> 
 
    <div ng-controller="sampleController"> 
 
    <div ng-class="rareList.includes(val1)? 'active' : 'not-active'">{{data}}</div> 
 
    <div ng-class="rareList.includes(val2)? 'active' : 'not-active'">{{data}}</div> 
 
    </div> 
 
</div>

+0

事は、1行に書いてみたい。私のコードは動作しますが、私はそれを短くしたいだけです。あなたのコードを使用する場合、私はまだ3つの小切手を作る必要があります。私はインデックスが0、1、または2ビットがもっと良いかどうかをチェックする方法があるかどうか疑問に思うだけです。私はおそらく "インクルード"の値の配列を渡す方法はありますか?もしそうなら、あなたのコードは素晴らしいでしょう –

+0

Ohhhh ......今あなたのコードを理解しています。ですから、私は '[1,2,3] .includes(index)? 'rare': '' 'right? –

+0

はい、値のインデックスを確認してください。割り当てを – Sreekanth

0

私はここで何かが欠けアム - $インデックスは行のインデックスである場合 - それは、常に0で開始し、インクリメントしなければなりません。したがって、下限を無視して、インデックスが上限よりも小さいかどうかをテストすることができます($ indexはゼロでインデックス付けされます(明示的に1から始まるように設定しない限り)。したがって、$ indexが3未満行インデックス0、1、2を選択できます)。

ng-class="{rare: $index < 3}" 

var app = angular.module("sampleApp", []); 
 

 
    app.controller("sampleController", ["$scope", 
 
     function($scope) { 
 
     $scope.data = ['test1','test2','test3','test4']; 
 
     } 
 
    ]);
.rare { 
 
    color: red; 
 
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script> 
 
    <div ng-app="sampleApp"> 
 
     <div ng-controller="sampleController"> 
 
     <div ng-class="{rare: $index < 3}" ng-repeat="datum in data">{{datum}} ($index = {{$index}})</div> 
 

 
     </div> 
 
    </div>

0

用途:

ng-class="{rare : [0,1,2].indexOf($index) >= 0}} 
関連する問題