我有一个带有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),显示此变量并检查变量内部是否?我不想两次计算表达式。 在控制器中计算变量的方法很糟糕,因为变量对于应用程序逻辑是无用的,只需要显示,但是如果任务发生变化则需要使用控制器 - 我需要重新计算变量并使用观察程序进行任务。
答案 0 :(得分:3)
您可以使用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>
答案 1 :(得分:1)
您可能也想使用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设置背景样式。