Ich beginne gerade mit AngularJS herumzuspielen und versuche die Bindungstechnik zu verstehen. Für den Anfang habe ich versucht, einen einfachen Umwandlungsrechner (Dutzende in Stücke, Stücke zu Dutzende) zu machen. Das funktionierte gut, aber als ich versuchte, sowohl einen Bereich Eingang und einen Nummer Eingang zur gleichen Modell Eigenschaft zu binden, der Nummer Eingang nicht aktualisiert, wenn der Bereich Wert eingestellt wird. Ich habe eine jsfiddle zeigt das Verhalten:Zwei-Wege-Bindung mit Bereichs- und Zahleneingabe in AngularJS
gemeinsamen JavaScript gebrochen und Arbeits Geigeen:
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>
jedoch die Bindung zwei Anzahl Eingaben die gleiche Modelleigenschaft scheint gut zu funktionieren, wie in dieser Geige gezeigt:
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>
Irgendwelche Ideen, wie man einen Bereich und Anzahl Eingang in AngularJS zu einer einzigen Modell Eigenschaft gebunden zu bekommen? Vielen Dank.
Ich glaube nicht type = "Bereich" unterstützt wird: https://github.com/angular/angular.js/issues/1189 Sie müssten wahrscheinlich Ihre eigene Direktive dafür schreiben. –