Ho avuto qualche problema con questo tempo; vediamo se qualcuno può darmi una mano.Qual è lo schema standard per le convalide dei dati ember? (stato non valido, diventato non valido ...)
Sebbene non sia esplicitamente indicato nel file Leggimi, ember-data fornisce un supporto per alcune convalide. Si può vedere che in alcune parti del codice e la documentazione:
https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/model/states.js#L411
https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/model/states.js#L529
L'adattatore REST non aggiunge convalide supportano su se stessa, ma ho scoperto che se aggiungo qualcosa di simile nelle chiamate Ajax, posso mettere il modello in uno stato di "non valido" con l'oggetto errori che veniva dal lato server:
error: function(xhr){
var data = Ember.$.parseJSON(xhr.responseText);
store.recordWasInvalid(record, data.errors);
}
così posso facilmente al seguente:
012.var transaction = App.store.transaction();
var record = transaction.createRecord(App.Post);
record.set('someProperty', 'invalid value');
transaction.commit()
// This makes the validation fail
record.set('someProperty', 'a valid value');
transaction.commit();
// This doesn't trigger the commit again.
La cosa è: Come si vede, transazioni non cercano di reimpegnarci. Questo è spiegato here e here.
Quindi il problema è: se non riesco a riutilizzare un commit, come dovrei gestirlo? Sospetto che abbia qualcosa a che fare con il fatto che sto inserendo il modello allo stato invalid
in modo asincrono - di reading the documentation, sembra come se fosse pensato per le convalide sul lato client. In questo caso, come dovrei usarli?
Non sarebbe problematico dal momento che non è possibile aggiungere oggetti sporchi di transazioni? –