AngularJS – 从一次性绑定中减去双向绑定
AngularJS – Subtract two-way bind from one-time bind
在我的 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>
一次性绑定运算符不是关联的,它适用于整个监视表达式。您可以 做的是一次性设置一个变量并使用它。
<tr ng-repeat="value in values">
<td>{{:: originalValue = value }}</td>
<td>{{originalValue - value }}</td>
<tr>
在此示例中,第一个观察者将计算 originalValue
直到它稳定,此时观察者将被注销,冻结 DOM 和 originalValue
的值。第二个观察者将继续使用冻结值计算其表达式。
在我的 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>
一次性绑定运算符不是关联的,它适用于整个监视表达式。您可以 做的是一次性设置一个变量并使用它。
<tr ng-repeat="value in values">
<td>{{:: originalValue = value }}</td>
<td>{{originalValue - value }}</td>
<tr>
在此示例中,第一个观察者将计算 originalValue
直到它稳定,此时观察者将被注销,冻结 DOM 和 originalValue
的值。第二个观察者将继续使用冻结值计算其表达式。