我有一系列输入字段,它们都绑定到AngularJS模型上的属性,这些属性都是可编辑的.
某些字段是基于其他用户输入的可选计算字段,可以在此处找到我正在使用的输入类型的样本.
基本上,如果有人进入的价值time和distance它应该自动工作了speed,或者speed和distance将制定出时间,等等.
如果用户指定了所有三个值并且他更改了其中一个,那么问题就不明确了?我猜了一下,决定更改用户触摸的最后一个值,保持最近的两个值不变.
我认为它可以推广到几乎任何公式,但你的milage可能会有所不同.写作很有趣.:)
这是一个工作示例:http://jsbin.com/OsuMaSek/1/edit
$scope.time = 0;
$scope.distance = 0;
$scope.speed = 0;
$scope.touchOrder = {
speed: 0,
distance: 0,
time: 0
};
function getLastTouched() {
var minTouched = null, minVal = Infinity;
Object.keys($scope.touchOrder).forEach(function (k) {
if (minVal > $scope.touchOrder[k]) {
minVal = $scope.touchOrder[k];
minTouched = k;
}
});
return minTouched;
}
$scope.totalTouchCount = 0;
$scope.touched = function (valTouched) {
$scope.totalTouchCount++;
$scope.touchOrder[valTouched] = $scope.totalTouchCount;
if ($scope.totalTouchCount >= 2) {
switch(getLastTouched()) {
case 'time': $scope.time = $scope.distance / $scope.speed; break;
case 'distance': $scope.distance = $scope.time * $scope.speed; break;
case 'speed': $scope.speed = $scope.distance / $scope.time; break;
}
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1648 次 |
| 最近记录: |