Javascript 如何在AngularJS中绑定3个或更多具有1:1关系的变量?

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

假设我想用AngularJS制作单元转换器。此外,我希望在编辑时同时更改多个值

这意味着,例如,如果我们有3个变量,那么在每一个变量改变时,另外2个变量应该自动改变

这可能吗

下面是一个不工作的片段,包含3个单位的距离、千兆米、光年和秒数:

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>