AngularJSで遊んで始め、バインディングテクニックを理解しようとしています。はじめに、私は単純な変換電卓(数十から数十まで)を作ろうとしました。それはうまくいったが、私は範囲値を調整する際数入力が更新されない同じモデルプロパティに範囲入力と数入力の両方に結合しようとしたとき。破壊され、作業フィドルのため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つの数入力に私は行動を示すjsfiddleを持っています同じモデルのプロパティは、このフィドルで示されているようにうまく動作しているようです:
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あなた自身の指示を書く必要があるでしょう。 –