0

ある値に応じて an を持つテーブルがありng-ifます。<tr>

私のコードは次のようになります。

<tr ng-if="someConditional" ng-repeat="row in rows track by row.obj1">....</tr> 

<tr ng-if="!someConditional" ng-repeat="row in rows track by row.obj2">....</tr> 

row.obj1存在する場合と存在row.obj2しない場合、またはその逆の場合でも、これによりエラーが発生します。

row.obj1 は someConditional が true の場合に存在し、row.obj2 は !someConditional が true の場合に存在します。

someConditional が true の場合、angularjs は、row.obj2 が存在しない (つまり、定義されていない) というエラーをスローします。

これは既知のバグですか? これに対する回避策はありますか?

4

2 に答える 2

4

条件を ng-repeat にロールインできますか?

<tr ng-repeat="row in rows track by (someConditional ? row.obj1 : row.obj2)">....</tr> 
于 2014-06-02T14:50:17.620 に答える
1

ngRepeatより優先度が高いngIf(各リンクの「ディレクティブ情報」セクションを参照)。つまり、出力は次のようにはなりません。

if condition then
    foreach
        ...
    endforeach
endif

むしろ:

foreach
    if condition then
        ...
    endif
endforeach

ここでの 1 つの解決策は、1 つのng-repeatステートメントのみを使用し、このループ内で条件をネストすることです。

于 2014-06-02T14:50:24.277 に答える