Ich bin ein Anfänger zu Angular und ich kann nicht herausfinden, wie man Daten von außerhalb einer Direktive abrufen. Ich habe verschiedene Eingaben aktualisiert und ich brauche die Richtlinie, um diese Daten zu nehmen und damit zu arbeiten. Im folgenden Beispiel ist das erste Eingabefeld an die Direktive angeschlossen und funktioniert einwandfrei, aber ohne dass das directive-Attribut auf das zweite Eingabefeld gesetzt wird, wie können die in diesem Feld eingegebenen Daten in der Direktive aktualisiert werden?AngularJS - Eingangswechsel außerhalb der Richtlinie Wert in Richtlinie übergeben
HTML:
<div ng-app="myDirective">
<input type="text" ng-model="test1" my-directive>
<input type="text" ng-model="test2">
</div>
Richtlinie:
angular.module('myDirective', [])
.directive('myDirective', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
scope.$watch(attrs.ngModel, function (v) {
console.log('New Value from field 1: ' + v);
//console.log('New Value from field 2: ' + ???);
});
}
};
});
Oh whoa helfen kann, ich hatte nicht erwartet, dass das funktionieren würde. Die Richtlinie bemerkt jedoch nur eine Änderung im ersten Textfeld. Wie könnte das zweite Textfeld dazu führen, dass $ watch aufgerufen wird? – AaronAAA
Sie müssten nur eine weitere Uhr auf 'test2' hinzufügen. Ich habe die Geige aktualisiert, um das zu zeigen. – sh0ber
Ich verstehe. Ich habe gerade meinen Code aktualisiert und es funktioniert! Eine letzte Frage, wenn es mehr als zwei Eingänge gibt, sagen wir test3, wie würde das funktionieren? – AaronAAA