Javascript 如何在AngularJS中绑定3个或更多具有1:1关系的变量?
假设我想用AngularJS制作单元转换器。此外,我希望在编辑时同时更改多个值 这意味着,例如,如果我们有3个变量,那么在每一个变量改变时,另外2个变量应该自动改变 这可能吗 下面是一个不工作的片段,包含3个单位的距离、千兆米、光年和秒数:Javascript 如何在AngularJS中绑定3个或更多具有1:1关系的变量?,javascript,angularjs,model-binding,Javascript,Angularjs,Model Binding,假设我想用AngularJS制作单元转换器。此外,我希望在编辑时同时更改多个值 这意味着,例如,如果我们有3个变量,那么在每一个变量改变时,另外2个变量应该自动改变 这可能吗 下面是一个不工作的片段,包含3个单位的距离、千兆米、光年和秒数: var myApp=angular.module('myApp',['myControllers']); var myControllers=angular.module('myControllers',[]); 霉菌控制者 .controller('My
var myApp=angular.module('myApp',['myControllers']);
var myControllers=angular.module('myControllers',[]);
霉菌控制者
.controller('MyController',['$scope',函数($scope){
$scope.petameters=10;
$scope.lightyears=$scope.petameters/9.460730472580800;
$scope.parsecs=$scope.lightyears/3.2616;
}]);代码>
千兆米:
光年:
Parsecs:
试试这个:
JS
html
千兆米:
光年:
Parsecs:
这是您需要在所有输入和调用功能上使用ng input/ng keypress
或类似事件的程序,它将更新光年
和parsecs
。为三个输入写入3个不同的ng更改。完成。您可以在一个函数中完成它,但它将使用if/else,而不是一个好的代码
var myApp = angular.module('myApp', ['myControllers']);
var myControllers = angular.module('myControllers', []);
myControllers
.controller('MyController', ['$scope',
function($scope) {
$scope.petameters;
$scope.lightyears;
$scope.parsecs;
$scope.update = function(unit) {
console.log('In Update');
if(unit === 1) {
$scope.lightyears = $scope.petameters / 9.460730472580800;
$scope.parsecs = $scope.lightyears / 3.2616;
} else if(unit === 2) {
$scope.petameters = $scope.lightyears * 9.460730472580800;
$scope.parsecs = $scope.lightyears / 3.2616;
} else {
$scope.lightyears = $scope.parsecs * 3.2616;
$scope.petameters = $scope.lightyears * 9.460730472580800;
}
};
}
]);
<body ng-app="myApp">
<div ng-controller="MyController">
Petameters:
<input type="text" ng-model="petameters" ng-keyup="update(1)" />
<br/>Light years:
<input type="text" ng-model="lightyears" ng-keyup="update(2)" />
<br/>Parsecs:
<input type="text" ng-model="parsecs" ng-keyup="update(3)" />
<br/>
</div>
</body>