正如您从下面看到的,我在一个输入中计算一个表达式{{ annualIncome * 4.5 }}
,并在另一输入中重新计算同一表达式,而不是存储表达式的结果并将其传递给另一个输入,因为我不确定如何执行此操作。
示例:
%label Equity Loan ({{ selectedLocation.loan }}%):
%input#equity_loan{ "disabled" => "disabled", "value" => "{{ selectedLocation.mortgage === 55 ? ((annualIncome * 4.5) / 11) * 9 : ((annualIncome * 4.5) / 15) * 4 }}" }
%label Mortgage ({{ selectedLocation.mortgage }}%):
%input#mortgage{ "disabled" => "disabled", "value" => "{{ annualIncome * 4.5 }}" }
我试过ng模型,但似乎不起作用。
此外,我曾试图通过在表达式末尾添加"|currency"来将值更改为货币,但也没有成功,但我猜这可能是因为我需要转换每个表达式的结果?
好吧,你不能在角度表达式中使用变量,但你可以在年收入变量改变后在控制器中使用;在您的视图中使用CCD_ 2语句绑定到。
为了在更改值后计算值,您可以在您的范围内设置一个手表。每次更新值时都会调用该函数。如果你想添加延迟而不是立即计算,你可以使用ng模型选项中的去抖动选项;示例:
%input{"ng-model-options" => "{debounce: { 'default': 500, 'blur': 0 }}"}
然后,它只是一种使用变量构建代码的方法。
$scope.$watch('annualIncome', function(value, oldValue) {
var annualIncome = value; // same as $scope.annualIncome
var parts = selectedLocation.mortgage === 55 ? 11 : 15;
var factor = selectedLocation.mortgage === 55 ? 9 : 4;
var annualValue = annualIncome * 4.5;
$scope.result = {
propertyValue: annualValue + (annualValue / parts) + ((annualValue / parts) * factor),
deposit: annualValue / parts
// and so on..
};
});
由于结果变量是在作用域上设置的,因此可以使用属性绑定在视图中绑定到它。
%input#property_value{ "disabled" => "disabled", "value" => "{{ result.propertyValue }}" }