2014-04-10 23 views
28

Sto affrontando un problema durante l'utilizzo di $ sporca nel mio modulo di domanda.

Il problema è una volta che si cambia il campo di modulo, il valore di $ sporco otterrà impostata su true ma ora quando si annullano le modifiche non è il ripristino $ sporca valore a falso.

Possiamo azzerare il valore di $ sporco a falso manualmente, ma poi quando si cambia di nuovo valori campo di modulo $ sporco non cambierà il suo valore a true . Secondo la mia osservazione, imposta il valore $ sporco di ogni campo nel modulo inserendo classe ng-dirty. Anche se si rimuove tale classe, ciò non influisce sul comportamento $ dirty.

// Please find below attached Fiddle for code reference 

Fiddle.

risposta

52

Quello che stai cercando è $ setPristine(). Lo trovi nei documenti qui: http://docs.angularjs.org/api/ng/type/form.FormController

Quando un modulo viene caricato per la prima volta nella pagina, si trova in uno stato definito incontaminato. Troverete questo modulo. $ Pristine è true e form. $ Dirty è falso. Una volta apportate le modifiche a qualsiasi elemento che ha un legame angolare, tali valori vengono invertiti. Mentre è possibile ripristinare i valori di input del modulo al loro stato originale, in questo modo non viene modificato nessuno stato di forma angolare. Effettuare una chiamata al modulo. $ SetPristine(); imposta i valori del modulo al loro stato originale.

+0

Per favore, dammi un esempio di Fiddle per lo stesso – pixelbyaj

+8

Certo: http://plnkr.co/edit/Lhdmly?p=preview – MBielski

+0

Grazie a @MBielski :) Controllerò la mia applicazione e ti faccio sapere:) – pixelbyaj