Angularjs 输入类型=";“范围”;当我将其添加到ng重复中时会突然移动

Angularjs 输入类型=";“范围”;当我将其添加到ng重复中时会突然移动,angularjs,Angularjs,我有一个具有3个值的变量$scope.values。对于每个值,我都会创建一个滑块。基本上,每个滑块的最大值是项的值。value,最小值始终为2,当前值为最高值。但我不知道为什么我会有这种奇怪的行为。您无法流畅地移动滑块 我怎样才能解决这个问题?多谢各位 {{item.value}} var myApp=angular.module('myApp',[]); myApp.controller('CalcCtrl',函数($scope){ $scope.values= [ {“值”:30},

我有一个具有3个值的变量
$scope.values
。对于每个值,我都会创建一个滑块。基本上,每个滑块的最大值是
项的值。value
,最小值始终为2,当前值为最高值。但我不知道为什么我会有这种奇怪的行为。您无法流畅地移动滑块

我怎样才能解决这个问题?多谢各位


{{item.value}}
var myApp=angular.module('myApp',[]);
myApp.controller('CalcCtrl',函数($scope){
$scope.values=
[
{“值”:30},
{“值”:50},
{“值”:1}
//当前值=是item.value
//最大值为item.value
//最小值为2。
]

您的
ng型号
值和
max
值不应相同。因为如果
max
值为50,而
ng型号
值为50,则应显示100%。 试试这个

<input type='range' ng-model="item.value" max="100" min="2" value="{{item.value}}">

{{item.value}}

问题在于,您使用的最大值与实际值相同,因此每次调整时,最大值都会发生变化。您可以通过检查dom看到这一点。相反,您应该有如下内容:

html

<div ng-controller="CalcCtrl">
  <div ng-repeat="item in values">
    <input type='range' ng-model="item.value" max="{{item.max}}" min="2">
    <span>{{item.value}}</span>
  </div>
</div>

您的
max
value
绑定到
item.value
,因此如果您更改该值,它会更改max并使其等于它。您只能将其递减。因此,添加另一个变量
$scope.max=90;
并更改
max={max}
@yavg,
Aleksey
评论和我的答案对你的问题有效。请回答mark as answer/upvote@AlekseySolovey谢谢,但是我需要知道最大值是否等于每个输入范围的item.value。我如何解决它?我不会创建变量{max}每人one@yavg它们是有界的,不能分开。考虑用一个新的模型复制-<代码> $范围。max [i] =角。拷贝($Simult.ItIs[I]值)适用于一个区域中的每个范围loop@yavg请看1+1=2我们无法正确更改它?就像如果最大值和实际值相同,那么结果应该是100%,这就是您现在得到的结果。谢谢,但我需要知道最大值是否等于每个输入范围的item.value。我如何解决它?我不会创建变量{max}每人one@yavg奇怪!请考虑一下逻辑意义。如果最大值和实际值相同,那么结果应该是显示完整范围。您要求我们像请将世界计算到
1+1=4
。只是开玩笑而已
<div ng-controller="CalcCtrl">
  <div ng-repeat="item in values">
    <input type='range' ng-model="item.value" max="{{item.max}}" min="2">
    <span>{{item.value}}</span>
  </div>
</div>
var myApp = angular.module('myApp', []);

myApp.controller('CalcCtrl', function ($scope) {
    $scope.values=
  [
    { "value":30, "max": 30},
    { "value":50, "max": 50},
    { "value":1, "max": 1}

   //current value= is item.value
   //max value is item.value
   //min value is 2.

  ]
});