考虑这个简单的例子(作为jsFiddle here提供):
HTML
<div ng-controller="MainCtrl as mainCtrl">
<form>
<input
type="range"
ng-model="mainCtrl.range.value"
ng-attr-min="mainCtrl.range.min"
ng-attr-max="mainCtrl.range.max" />
</form>
<div>{{mainCtrl.range.min}} -- {{mainCtrl.range.value}} -- {{mainCtrl.range.max}}</div>
</div>
的JavaScript
angular.module('AngularTestApp', [])
.controller('MainCtrl', [function () {
var self = this;
self.range = {
min: 0,
max: 10,
value: 3
};
}]);
将滑块一直向右滑动会产生100的值,远远超过滑块应设置的最大值10。为什么?如何通过AngularJS绑定以编程方式设置HTML滑块的最大值?
(N.B。有一个开放的AngularJS错误ng-model does not set initial value and position of input[type=range] #6726,但这是关于设置滑块的初始值,这在我的代码中工作正常。)
答案 0 :(得分:1)
答案在Blackhole和sqiroid对问题的评论中,但我也会将它们拉出来,以便问题无法回答。
这是一个简单的例子,我错过了双花括号。代码应为:
<强> HTML 强>
<div ng-controller="MainCtrl as mainCtrl">
<form>
<input
type="range"
ng-model="mainCtrl.range.value"
ng-attr-min="{{mainCtrl.range.min}}"
ng-attr-max="{{mainCtrl.range.max}}" />
</form>
<div>{{mainCtrl.range.min}} -- {{mainCtrl.range.value}} -- {{mainCtrl.range.max}}</div>
</div>
sqiroid提供了修订后的JSFiddle here。
我发现很难判断何时使用双花括号;在我的原始代码中,ng-model
对ng-attr-min
和ng-attr-max
都有不同的要求,这对我来说并不明显。在对原始问题的进一步评论中,Blackhole提供了一些有用的经验法则,用于判断何时可能需要双花括号(或不需要):
但Blackhole继续强调一个人应该&#34;总是看文档以确保&#34;。