Convalida del modello di vista angolare

6

Il modello di visualizzazione sembra essere il luogo più appropriato per eseguire la convalida, tuttavia Angular sembra spingermi verso il basso nella famosa forma di convalida del modulo.

Perché convalida del modello?

  • ASCIUTA - L'applicazione della convalida al modello centralizzerà la logica di convalida invece di ripeterla in ogni vista.
  • Unità verificabile - Poiché la logica non è accoppiata nell'HTML, siamo in grado di applicare il test dell'unità alla nostra logica di convalida.
  • Modelli condivisi - I modelli di visualizzazione condivisi possono essere convalidati indipendentemente dal controller con cui interagiscono.

Quello che ho esaminato ...

Ho esaminato la creazione di uno schema JSON per definire un modello valido con la seguente autorizzazione dello schema ...

link

Sebbene si tratti di un'opzione valida, ritengo di essere vincolata allo schema e pertanto non posso applicare convalide o messaggi personalizzati.

Mi sento come se avessi bisogno di una libreria di convalida matura per gestire questa convalida del modello, ma non riesco a trovare nulla online per soddisfare le mie esigenze.

Come puoi aiutare?

Sono curioso di sapere se altri sviluppatori hanno avuto un'esperienza simile e quale fosse il loro approccio. Hai trovato una valida soluzione di convalida del modello o hai bloccato la convalida del modulo?

    
posta heymega 26.05.2016 - 11:38
fonte

2 risposte

0

In angularJS, il modo corretto è utilizzare le direttive per aggiungere un vincolo di validazione a un campo.

Quindi aggiungi queste direttive all'ingresso / seleziona / ... nel modulo.

Usando ngModelController, puoi impostare un messaggio diverso per ogni tipo di errore.

Per gestire correttamente i messaggi, ti suggerisco di controllare angular-message , è una piccola libreria di utilità per messaggi di errore.

    
risposta data 26.05.2016 - 11:48
fonte
0

La convalida della GUI a volte può essere un po 'più complicata, quindi basta controllare quale valore ha il modello. Ad esempio, l'utente ha già messo a fuoco questo campo o no? Se i campi che l'utente non ha ancora visitato hanno immediatamente una sagoma rossa se è richiesta, o solo dopo che l'utente ha tentato di salvarlo o 'tabbed' lo ha passato?

Il mix di interazione rende il modo attuale di specificazione nella fiera, credo. Ci sono un sacco di ganci per personalizzare intorno.

Se si specifica una convalida per un campo più volte, prendere in considerazione la possibilità di includerla in una direttiva. Ho difficoltà a pensare a tutte le occorrenze in cui ho permesso la modifica su uno stesso campo in più viste / forme però.

    
risposta data 25.07.2016 - 16:24
fonte

Leggi altre domande sui tag