如何在AngularJS中以复杂的方式绑定(?)多个变量



假设某个类似小部件的范围滑块绑定到一个2元素数组。此外,我希望在单独的文本字段中显示范围限制。如何做到这一点?

 angular
        .module('myApp', ['ui.slider']);
        
		angular.module('myApp')
    			 .controller('MyController', MyController);
           
    function MyController() {
    		var vm = this;
        
        vm.slider = [5,15];
    }
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.4/jquery-ui.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="http://angular-ui.github.io/ui-slider/src/slider.js"></script>
<body ng-app="myApp">
    <div ng-controller="MyController as vm">
      		<strong>Range slider:</strong>
		      <div ui-slider="{range: true}" min="1" max="20" step="1" ng-model="vm.slider"></div>
          <strong>It's value is bound as an array:</strong><br>
		      <input type="text" ng-model="vm.slider" /><br>
          <strong>How to bind sepately:</strong><br>
		      From: <input type="text" ng-model="vm.sliderfrom" /> To: <input type="text" ng-model="vm.sliderto" /><br>
    </div>
</body>

我需要在每次限制更改和反转时更新数组。如何做到这一点?

您可以直接绑定数组元素

From: <input type="text" ng-model="vm.slider[0]" />
To: <input type="text" ng-model="vm.slider[1]" />

angular
  .module('myApp', ['ui.slider']);
angular.module('myApp')
  .controller('MyController', MyController);
function MyController() {
  var vm = this;
  vm.slider = [5, 15];
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.4/jquery-ui.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="http://angular-ui.github.io/ui-slider/src/slider.js"></script>
<body ng-app="myApp">
  <div ng-controller="MyController as vm">
    <strong>Range slider:</strong>
    <div ui-slider="{range: true}" min="1" max="20" step="1" ng-model="vm.slider"></div>
    <strong>It's value is bound as an array:</strong>
    <br>
    <input type="text" ng-model="vm.slider" />
    <br>
    <strong>How to bind sepately:</strong>
    <br>From:
    <input type="text" ng-model="vm.slider[0]" />To:
    <input type="text" ng-model="vm.slider[1]" />
    <br>
  </div>
</body>

最新更新