0

我有一个表,它有一个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 为真时存在,而 row.obj2 在 !someConditional 为真时存在。

当 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

一种解决方案是仅使用一个ng-repeat语句,并将条件嵌套在此循环中。

于 2014-06-02T14:50:24.277 回答