Sono un principiante di Angular e non riesco a capire come recuperare i dati dall'esterno di una direttiva. Ho vari input in fase di aggiornamento e ho bisogno della direttiva per prendere questi dati e lavorare con esso. Ad esempio, nel seguente codice, il primo campo di input è collegato alla direttiva e funziona correttamente, ma senza inserire l'attributo direttiva nel secondo campo di input, come possono essere aggiornati i dati digitati in quel campo nella direttiva?AngularJS - Modifica dell'ingresso al di fuori del valore della direttiva passato alla direttiva
HTML:
<div ng-app="myDirective">
<input type="text" ng-model="test1" my-directive>
<input type="text" ng-model="test2">
</div>
direttiva:
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, non mi aspettavo che avrebbe funzionato. Tuttavia, la direttiva rileva solo una modifica nel primo campo di testo. In che modo il secondo campo di testo ha comportato l'invocazione del $ watch? – AaronAAA
Dovresti solo aggiungere un altro orologio su 'test2'. Ho aggiornato il violino per dimostrarlo. – sh0ber
Capisco. Ho appena aggiornato il mio codice e funziona! Un'ultima domanda però, se ci sono più di due input, diciamo test3, come funzionerebbe? – AaronAAA