2

在我的Angular 1.4.8应用程序中,我想计算原始值与用户更改后的值之间的差异。

<table>
  <tr>
    <td>Value</td>
    <td>Difference</td>
  </tr>
<tr ng-repeat="value in values">
  <td>{{ value }}</td>
  <td>{{ ::value - value }}</td>
<tr>
</table>

这些值是一个数组,例如$scope.values = [1,5,8,3];

但这不起作用。Angular 首先进行减法,然后将差异字段永远绑定为零。或者,如果我这样做,它只会崩溃:

<td>{{ (::value) - value }}</td>
4

1 回答 1

2

一次性绑定运算符不是关联的,它适用于整个监视表达式。您可以做的是一次性设置一个变量并使用它。

<tr ng-repeat="value in values">
  <td>{{:: originalValue = value }}</td>
  <td>{{originalValue - value }}</td>
<tr>

在这个例子中,第一个观察者将计算originalValue,直到它稳定,观察者将被取消注册,冻结 DOM 和originalValue. 第二个观察者将继续使用冻结值计算其表达式。

于 2016-03-06T23:48:05.333 回答