【问题标题】:angularjs ng-repeat increment in if-conditionif条件中的angularjs ng-repeat增量
【发布时间】: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


【解决方案1】:

从技术上讲,我认为你问的问题和这个人一样: angular.js ng-repeat - check if conditional is true then use another collection

因此,您必须在 ng-controller 中定义一个函数来检查变量。这对你有用吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多