Zu ng-modelIhrer ng-changeInformation : Der Grund, warum dies funktioniert, ist, dass Prio 1 und Prio 0 (ab Winkel 1.5) vorhanden sind und daher zuerst aufgerufen werden
user1859022
11
Sie können Felder sofort binden, nicht nur in ng-change, und tatsächlich ist es keine Datenbindung, sondern der einzige Winkelausdruck
Es hat tatsächlich bei mir funktioniert, aber können Sie erklären, warum es funktioniert? Warum funktioniert es nicht, nur value = "{{name}}" zu verwenden?
Gil404
rette meinen Tag davor, viel $ watch zu schreiben :)
maruf571
7
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.
Antworten:
Sie können nicht, aber es gibt einige Problemumgehungen.
1. Verwenden Sie ngChange, um das andere Modell zu aktualisieren
<input type="text" ng-model="sn_number" ng-change="id=sn_number"/>
2. Sie können ein Modell ansehen und bei Änderungen ein anderes aktualisieren
$scope.$watch('sn_number', function(v){ $scope.id = v; });
Sie müssten auch auf Änderungen achten,
id
wenn Sie sie synchron halten möchten.Beispiel hier
quelle
ng-model
Ihrerng-change
Information : Der Grund, warum dies funktioniert, ist, dass Prio 1 und Prio 0 (ab Winkel 1.5) vorhanden sind und daher zuerst aufgerufen werdenSie 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}}" />
quelle
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.
quelle
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'}">
quelle