我有两个需要绑定的输入字段。一个输入表示英亩,另一个表示平方英尺。 当您更新任何一个时,另一个也应该更新,应用正确的转换公式。 问题是我只想要显示两位小数。
标记:
<input type="text" ng-model="acres">
<input type="text" ng-model="sqft">
控制器:
$scope.$watch('acres', function () {
$scope.sqft = $filter('number')(($scope.acres / 5.23565), 2);
});
$scope.$watch('sqft', function () {
$scope.acres = $filter('number')(($scope.sqft * 5.54841), 2);
});
答案 0 :(得分:0)
我认为应该是:
$scope.$watch('acres', function (newVal, oldVal) {
if (newVal !== oldVal) {
$scope.sqft = $filter('number')((newVal/ 5.23565), 2);
}
});
但现在你不能对sqft
做同样的事情,否则你将以无限循环结束。
答案 1 :(得分:0)
您可以尝试使用ng-change
而不是$watch
标记:
<input type="text" ng-model="acres" ng-change="acresChanged()">
<input type="text" ng-model="sqft" ng-change="sqftChanged()">
控制器:
$scope.acresChanged = function() {
$scope.sqft = $filter('number')(($scope.acres / 5.23565), 2);
};
$scope.sqftChanged = function() {
$scope.acres = $filter('number')(($scope.sqft * 5.54841), 2);
};