我正在编写一个转换货币的小应用程序。此应用程序由多个输入字段组成,这些字段应相等,并乘以特定的速率。到目前为止,我一直在使用以下哪个有效:
的index.html
<input type="number" ng-model="currencies.value"></input> //input field
<div>{{currencies.value * currency.rate}}</div> //output fields, many of these
app.js
app.controller('CurrencyController',function($scope){
this.currencies = currencies;
this.value = 1.00;
});
但是,这不是我想要做的。这个问题是,只使用了一个输入字段,而输出字段是div。我想要完成的是所有输入和输出字段都是如此(速率由循环预定义):
<input type="number" ng-model="currencies.value * currency.rate"></input> //input field
<input type="number" ng-model="currencies.value * currency.rate"></input> //output field, many of these
不幸的是,我无法弄清楚如何使用ng-model
乘以输入字段的值,因为它只设置一个值,而不是一个函数。
我在这里遗漏了什么吗?提前谢谢!
答案 0 :(得分:0)
使用ng-change(添加父母&#39;货币&#39;为良好做法建模&#39;)
<input type="number" ng-model="currency.input" ng-change="update('output', 'input', currency.rate)"/>
<input type="number" ng-model="currency.output" ng-change="update('input', 'output', 1/currency.rate)"/>
您的控制器应该看起来像
//Initialize the current object
$scope.currency = {
input: 0,
output: 0,
rate: 1.5
}
$scope.update = function(newVal, val, rate){
$scope.currency[newVal] = $scope.currency[val] * rate;
}