私は、複数のng-if
ステートメントを使用してセルにデータの集合が含まれている動的なテーブルを作成している状況があります。基本的に私はif文が真であるかどうかを知る必要があるので、もう1つはng-if
です。1つまたは複数のng-ifステートメントの角チェックが真である
これは私がやっていることの簡単な例です。集計結果が異なる約20の列があります。
<table>
<tr ng-repeat="record in data">
<td>
<span ng-if="record.some_number > 0 && record.type == 'SomeType'">{{data1}}</span>
<span ng-if="record.age >= 20 && record.age <= 50 && record.gender == 'MALE'">{{data2}}</span>
<span ng-if="(record.age <= 20 || record.age >= 50) && record.gender == 'FEMALE'">{{data3}}</span>
<span ng-if="!(record.some_number > 0 && record.type == 'SomeType') && !(record.age >= 20 && record.age <= 50 && record.gender == 'MALE') && !((record.age <= 20 || record.age <= 50) && record.gender == 'FEMALE')">{{data4}}</span>
</td>
</tr>
<table>
条件が完全に異なっているので、私はNG-スイッチを使用することはできません。これはデータの集約であり、/ elseではありません。私はちょうど '!'私の集約のいくつかには多くの条件が含まれており、if文のいくつかは自明ではないため、別のスパンの各条件に適用されます。あまりにも複雑な 'その他の'条件のメンテナンスが悪夢になるので、多くの集約セルがあります。
理想的には、ng-if
ステートメントが真である場合に、単一の変数をtrueに割り当てることができればと思っています。何かご意見は?
JS内のすべてのチェックを行うのではなく、あなたの条件にマップできる変数 '$ scope'を作成する必要があります。 – SoluableNonagon
はい。それはまさに私がしたいことですが、ng-ifステートメントを使ってそれを行う方法がわかりません。私はそれを私のコントローラーにする唯一の方法を想定しています。それは理想的ではありません。なぜなら私は2つの場所で自分の条件を維持しなければならないからです。 – Gremash
私はあなたに答えの例を示します – SoluableNonagon