2016-03-06 88 views
0

在我的Angular 1.4.8應用程序中,我想計算原始值與用戶更改後的值之間的差異。AngularJS - 減去一次性綁定的雙向綁定

<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> 

回答

1

一次性綁定操作符不關聯,它適用於整個手錶表達式。你可以做的是一次性設置一個變量並使用它。

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

在這個例子中,第一觀察者將計算originalValue直到其穩定在該點處的觀察者將被取消註冊,凍結兩個DOM和originalValue值。第二個觀察者將繼續用凍結值計算其表達式。