在输入中存储AngularJS表达式结果
Storing AngularJS expression result in input
正如您从下面看到的,我在一个输入中计算一个表达式{{ 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 }}" }
相关文章:
- Angular,表达式{{}}的结果没有插入到ng-click中
- javascript RegExp的奇怪行为:相同的正则表达式会产生不同的结果
- javascript使用正则表达式得到错误的结果
- 为什么下面给出的表达式在javascript中的求值结果为30
- 如何在javascript中匹配和提取正则表达式中的部分结果
- 在输入中存储AngularJS表达式结果
- 正则表达式,两种方式,不同的结果
- 为什么两次运行完全相同的正则表达式的结果不同
- 将此javascript正则表达式匹配限制为26个字符的结果
- 表达式'$的结果.cookie'[未定义]不是函数
- JavaScript 正则表达式返回拆分的结果
- 通过正则表达式检查合法字符,但结果出乎意料
- 结果中有 scope.variable 的 ng-attr- 表达式
- JS正则表达式结果表达式赋值问题
- 意外的非贪婪JS正则表达式结果
- PHP正则表达式不工作,返回主题字符串而不是正则表达式结果
- 如果前一个字符是/,如何忽略正则表达式结果(基本上忽略链接href内容)
- 检索具有深入信息的正则表达式结果
- JavaScript 字符串由正则表达式结果拆分,子字符串包括空切片
- JavaScript 不返回预期的正则表达式结果