【问题标题】:Is it possible to calculate and save local variable inside ng-repeat?是否可以在 ng-repeat 中计算和保存局部变量?
【发布时间】:2016-12-07 18:00:52
【问题描述】:

我与 ng-repeat 有一个共同的块:

<div ng-repeat="(position, task) in Tasks.plannedTasks">
     {{(task.plan - (TasksTimeSpent[task.id][task.worker]).toFixed(2)}}
</div>

现在我需要设置背景如果:

{{(task.plan - (TasksTimeSpent[task.id][task.worker]).toFixed(2)}} < 0

task.plan 和 task.worker 可以更改,之后需要检查 if 语句并更改显示值 是否可以将表达式结果保存在变量中(例如:curDif),显示该变量并在 if 中检查变量?我不想计算表达式两次。 在控制器中计算变量的方法很糟糕,因为变量对应用程序逻辑没有用,只需要显示,但如果任务发生变化则使用控制器 - 我需要重新计算变量并使用任务观察器。

【问题讨论】:

标签: angularjs


【解决方案1】:

您可以为此使用ng-init

<div ng-repeat="(position, task) in Tasks.plannedTasks">
  <ng-init ng-init="curDif = (task.plan - (TasksTimeSpent[task.id][task.worker]).toFixed(2)">
     {{curDif}}
  </ng-init>
</div>

【讨论】:

    【解决方案2】:

    您可能还想使用 ng-class 来设置背景。

    <div ng-repeat="(position, task) in Tasks.plannedTasks">
    
        <div ng-init="curDif = task.plan - (TasksTimeSpent[task.id][task.worker]).toFixed(2)" ng-class="'my-background':curDif < 0">
    
    
        </div>
    
    </div>
    

    然后使用 CSS 设置背景样式。

    【讨论】:

    • 谢谢。我已经在使用它了 =) 我的问题是在 ng-repeat 中保存本地值
    猜你喜欢
    • 2018-07-01
    • 1970-01-01
    • 2020-07-18
    • 2011-01-25
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多