C'è un modo per sopprimere la validazione dei modelli in Backbone.js quando un nuovo modello viene creato?modello Impedire Backbone.js da convalidare al momento della prima aggiunta alla collezione
Nella mia app, ho una collezione con un numero arbitrario di modelli, che sono rappresentati come elementi della lista. L'utente può fare clic su un pulsante su ciascun elemento, che inserisce un nuovo oggetto vuoto sotto l'elemento corrente. L'elemento vuoto sta fallendo la convalida, ovviamente, perché non voglio che un oggetto vuoto venga salvato in seguito.
Non c'è modo per me di sapere quali valori predefiniti potrebbero essere quando creo il nuovo elemento, quindi la prepopolazione del nuovo modello con dati validi non sembra un'opzione.
Qualche suggerimento?
Update: Mentre si lavora su un problema relativo tangenzialmente, mi sono reso conto che stavo usando Backbone.js versione 0.9.0. Quando questa versione è stata rilasciata, altre persone hanno avuto lo stesso problema che ho avuto e si sono lamentate in this issue su GitHub.
Jeremy ha modificato la convalida in 0.9.1 per risolvere questo problema. L'aggiunta di un modello (temporaneamente) vuoto a una raccolta è un caso d'uso valido nel mondo reale. Puoi gestire il nuovo modello vuoto nella vista, ma se gestisci un elenco di elementi come I am, ciò ti obbliga ad avere una collezione di viste di elementi (incluso quella vuota) oltre alla tua collezione di must modelli validi. È una soluzione davvero goffo per uno scenario altrimenti semplice. Sono contento che questo è stato risolto.
Non aggiungere modelli non validi ha senso in teoria, ma non riesco a pensare a un modo migliore per consentire all'utente di aggiungere una nuova riga. Immagino di poter gestire tutto questo nella vista, quindi aggiungere l'elemento alla raccolta quando è valido, ma ciò complicherebbe notevolmente altri aspetti di questa app. Il tuo esempio funziona alla grande, ma quando lo provo nella mia app il parametro 'options' viene sovrascritto con l'oggetto' {silent: true} ', che Backbone.js sembra automaticamente in shoehorn. Sono molto perplesso adesso. –
Non si dovrebbero aggiungere modelli non validi: la vista dovrebbe catturare il messaggio di errore inviato dalla validazione sul modello e consentire all'utente di correggere il proprio input o cancellarlo. Quando raccolgo informazioni dal nostro server e ottengo dati non validi, lo faccio cadere sul pavimento (e invio un messaggio alla nostra struttura di registrazione Ajax) perché i modelli non validi in una raccolta sono una "cattiva idea" – tkone