Ich habe schon seit einiger Zeit damit zu kämpfen; Mal sehen, ob mir jemand helfen kann.Was ist das Standardmuster für die Validierung von Glutendaten? (ungültiger Zustand, wurde zu Invalid ...)
Obwohl es nicht explizit in der Readme gesagt wird, bietet ember-data einige Validierungen Unterstützung. Sie können auf einige Teile des Codes und der Dokumentation sehen, dass:
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
Der REST-Adapter hinzufügen nicht Validierungen auf sich selbst zu unterstützen, aber ich fand heraus, dass, wenn ich hinzufügen, so etwas wie dieses in den ajax-Aufrufe, kann ich das Modell auf einem „ungültigen“ Zustand mit dem Fehler Objekt setzen, die von der Server-Seite kam:
error: function(xhr){
var data = Ember.$.parseJSON(xhr.responseText);
store.recordWasInvalid(record, data.errors);
}
So kann ich einfach auf die folgenden:
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.
Die Sache ist die: Wie Sie sehen, Transaktionen nicht versuchen, zu verpflichten. Dies wird erklärt here und here.
Die Sache ist also: Wenn ich ein Commit nicht wiederverwenden kann, wie soll ich damit umgehen? Ich vermute, dass etwas mit der Tatsache zu tun hat, dass ich asynchron das Modell auf den invalid
-Status setze - durch reading the documentation scheint es, als ob etwas für clientseitige Validierungen gemeint ist. In diesem Fall, wie soll ich sie benutzen?
wäre dies nicht problematisch sein, da Sie nicht schmutzig Objekte zu Transaktionen hinzufügen können? –