我剛開始玩弄AngularJS並試圖理解綁定技術。對於初學者來說,我試圖製作一個簡單的轉換計算器(幾十個片斷,幾十個片斷)。這工作很好,但是當我試圖既範圍輸入和輸入相同的模型屬性在調整範圍值數輸入不更新數綁定。我有一個展示的行爲的jsfiddle:在AngularJS中與範圍和數字輸入的雙向綁定
的破碎和工作小提琴常見的JavaScript:
var myApp = angular.module('myApp', []);
myApp.controller('CalcCtrl', function ($scope) {
var num = 0.0;
$scope.qty = new Quantity(12);
$scope.num = num;
});
function Quantity(numOfPcs) {
var qty = numOfPcs;
var dozens = numOfPcs/12;
this.__defineGetter__("qty", function() {
return qty;
});
this.__defineSetter__("qty", function (val) {
qty = val;
dozens = val/12;
});
this.__defineGetter__("dozens", function() {
return dozens;
});
this.__defineSetter__("dozens", function (val) {
dozens = val;
qty = val * 12;
});
}
HTML:
<div ng-controller="CalcCtrl">
<form>
<label for="pcs">Pieces:</label>
<input type="number" min="0" ng-model="qty.qty" size="20" id="pcs"
/>
<input type="range" min="0" max="100" ng-model="qty.qty" />
<br/>
<label for="numOfDozens">Dozens</label>
<input type="number" min="0" ng-model="qty.dozens" size="20"
id="numOfDozens" />
</form>
</div>
然而,結合2個數投入相同的模型屬性似乎可以正常工作,如下圖所示:
HTML:
<div ng-controller="CalcCtrl">
<form>
<label for="pcs">Pieces:</label>
<input type="number" min="0" ng-model="qty.qty" size="20" id="pcs"
/>
<input type="number" min="0" max="100" ng-model="qty.qty" />
<br/>
<label for="numOfDozens">Dozens</label>
<input type="number" min="0" ng-model="qty.dozens" size="20"
id="numOfDozens" />
</form>
</div>
任何想法如何得到範圍和數輸入綁定到AngularJS一個模型屬性?謝謝。
我不認爲類型= 「範圍」 的支持:HTTPS:/ /github.com/angular/angular.js/issues/1189您可能必須爲它編寫自己的指令。 – 2013-02-27 15:59:13