Kann ich trotzdem zwei Modellwerte an ein Eingabefeld binden?
Angenommen, ich habe ein Eingabefeld, das der Wert von zwei Variablen im Bereich sein soll, etwa:
<input type="text" model="sn_number; id" >
Kann ich trotzdem zwei Modellwerte an ein Eingabefeld binden?
Angenommen, ich habe ein Eingabefeld, das der Wert von zwei Variablen im Bereich sein soll, etwa:
<input type="text" model="sn_number; id" >
Antworten:
Sie können nicht, aber es gibt einige Problemumgehungen.
<input type="text"
ng-model="sn_number"
ng-change="id=sn_number"/>
$scope.$watch('sn_number', function(v){
$scope.id = v;
});
Sie müssten auch auf Änderungen achten, id
wenn Sie sie synchron halten möchten.
ng-model
Ihrer ng-change
Information : Der Grund, warum dies funktioniert, ist, dass Prio 1 und Prio 0 (ab Winkel 1.5) vorhanden sind und daher zuerst aufgerufen werden
Sie können Felder sofort binden, nicht nur in ng-change, und tatsächlich ist es keine Datenbindung, sondern der einzige Winkelausdruck
<label>Name</label>
<input type="text" ng-model="name" value="{{name}}"/>
<label>Key</label>
<input type="text" ng-model="key" value="{{key=name}}" />
Es wäre nicht sinnvoll, eine Eingabe an zwei Variablen im Modell zu binden. Die Bindung funktioniert in beide Richtungen. Wenn das Modell aktualisiert wird, wird das Feld aktualisiert und umgekehrt. Wenn Sie sich an zwei Variablen binden würden, was wäre die einzige Quelle der Wahrheit?
Sie können jedoch ng-change verwenden, um eine Methode auf dem Controller aufzurufen, die zwei Variablen festlegen kann, wenn sich das Feld ändert.
mit ng-init
<div ng-controller="ctrl" ng-init="model = { year: '2013', month:'09'}">
oder
<div ng-repeat="c in contact" ng-init="likes = { food: 'steak', drink:'coke'}">