Was ist das Standardmuster für die Validierung von Glutdaten? (ungültiger Zustand, wurde ungültig ...)

Ich habe seit einiger Zeit damit zu kämpfen. Mal sehen, ob mir jemand helfen kann.

Obwohl dies in der Readme-Datei nicht ausdrücklich erwähnt wird, bieten die Ember-Daten eine gewisse Validierungsunterstützung. Sie können dies an einigen Stellen des Codes und der Dokumentation sehen:

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 fügt selbst keine Validierungsunterstützung hinzu, aber ich habe herausgefunden, dass ich das Modell mit dem Fehlerobjekt, das von der Serverseite stammt, in einen "ungültigen" Zustand versetzen kann, wenn ich so etwas in die Ajax-Aufrufe einfüge:

error: function(xhr){
  var data = Ember.$.parseJSON(xhr.responseText);
  store.recordWasInvalid(record, data.errors);
}

So kann ich leicht auf folgendes eingehen:

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: Wie Sie sehen,Transaktionen versuchen nicht erneut zu bestätigen. Dies wird erklärtHier undHier.

Die Sache ist also: Wenn ich ein Commit nicht wiederverwenden kann, wie soll ich damit umgehen? Ich vermute, das hat etwas mit der Tatsache zu tun, dass ich das Modell asynchront auf den Markt bringeinvalid Zustand - durchLesen Sie die Dokumentationist anscheinend etwas für clientseitige Validierungen gedacht. Wie soll ich sie in diesem Fall verwenden?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage