Provo a creare una direttiva che dovrebbe eseguire alcune azioni quando un campo di input è contrassegnato come non valido. Per questo esempio permette di assumere ho una direttiva che controlla se l'ingresso è un numero primo, e io voglio creare una direttiva che aggiunge una classe all'elemento quando è valida:validità vigilanza direttiva AngularJS
<input type="text" ng-model="primeNumber" validate-prime invalid-add-class="error">
Il validate-prime utilizza la parser e formattatori su ng-model per aggiornare la validità del modello.
Ora desidero che la direttiva invalid-add-class aggiunga la classe "error" quando il modello non è valido e rimuoverlo quando è valido. In altre parole, dovrebbe guardare la proprietà $ valida (o $ non valida) del controller del modello. Tuttavia, non riesco a capire come farlo funzionare. Ho provato:
link : function(scope, element, attrs, ctrl) {
ctrl.$watch("$valid", function(newVal, oldVal) {
//never fired
});
}
Forse potrei guardare un po 'variabile sul campo di applicazione, ma non so quale variabile da controllare.
Quindi, come posso ricevere una notifica quando cambia la validità di un modello?
se puoi condividere la tua direttiva sarà bello! –
Non ricordo per cosa ho usato esattamente questo, ma la seconda soluzione di CaioToOn è praticamente l'intera funzione di collegamento. Solo il corpo della seconda funzione dovrebbe essere riempito con qualsiasi azione tu voglia quando la validità cambia. – Tiddo