【发布时间】:2015-08-21 05:54:44
【问题描述】:
我想在 ng-repeat 外部设置一个变量,并在 ng-if 内部增加它。 只有当条件为假时,变量才应该递增。
在 Twig 中看起来像:
{% for plan in entity.plan %}
{% set spieltag = 0 %} <!-- sets the variable inside loop -->
{% if (plan.spieltag != spieltag) %}
<tr class="bg-info">
<td colspan="7">Spieltag: {{ plan.spieltag }}</td>
<td></td>
</tr>
{% set spieltag = spieltag +1 %} <!-- only increments when condition is false -->
{% endif %}
<tr>
<!-- some stuff that always shown
</tr>
{% endfor %}
在 Angular 中,我有一个 tr-loop:
<tr data-ng-repeat="row in liga.plan" data-ng-init="spieltag = 0">
<!-- shows all the stuff -->
</tr>
我知道 ng-init 放错了位置,但我应该把它放在哪里,我如何才能在条件为假时才增加它?
循环中的数据:
[{
plan: [
{spieltag: 1, home: foo, guest: bar},
{spieltag: 1, home: foo1, guest: bar1},
{spieltag: 1, home: foo2, guest: bar2},
{spieltag: 2, home: bar, guest: foo},
{spieltag: 2, home: bar1, guest: foo1},
{spieltag: 2, home: bar2, guest: foo2},
]
}]
【问题讨论】:
-
这不是正确的方法。 Angular的做事方式是将视图与业务逻辑分开。视图应该是愚蠢的,并且查看不修改的数据。控制器是准备数据的地方。通过电话我无法为您创建示例,因此评论不是答案。
-
angular 可能会运行数百次表达式,而您只需要思考一次。将计数器放在模板中是错误的角度。
标签: javascript angularjs