2013-04-30 12 views
6

Sto scrivendo una direttiva che deve controllare elementi che vengono aggiornati con una determinata classe, ad esempio .ng-invalid. Come sai, .ng-invalid viene aggiunto agli elementi del modulo non validi.

Ho bisogno di guardare questi elementi per determinare se la classe è stata aggiunta o rimossa.

Come posso ottenere questo risultato?

Grazie in anticipo

+0

potresti condividere il tuo codice con demo fiddle o plunker –

+0

Ecco un manichino per il mio requisito. http://jsfiddle.net/aW7FD/ – Abilash

risposta

5

Si potrebbe vedere $ una funzione che ottiene la lunghezza del $(".ng-invalid"):

scope.$watch(function() { 
    return $(".ng-invalid").length; 
}, function (newVal, oldVal) { 
    if(newVal !== oldVal) { 
     console.log('changed!', newVal, oldVal); 
     // do your changes here 
    } 
}) 

Fiddle. Nel violino, ho aggiunto ng-minlength="2" al primo input. Digita due caratteri in quel campo per vedere il trigger $ watch.

1

sarebbe sufficiente per i vostri scopi di guardare l'attributo $invalid di FormController? Questo ti avviserà dei cambiamenti stato non valido olistica del form, ad esempio:

// Somewhere in your directive; formCtrl is the FormController 
scope.$watch(function() { 
    return formCtrl.$invalid; 
}, function(isInvalid, wasInvalid) { 
    // ... 
}); 
+0

No questo non è sufficiente per il mio requisito :-( – Abilash