Jaki jest standardowy wzór sprawdzania poprawności danych ember? (nieprawidłowy stan, stał się Nieprawidłowy…)
Od pewnego czasu zmagam się z tym; zobaczmy, czy ktoś może mi pomóc.
Chociaż nie jest to wyraźnie powiedziane w pliku Readme, ember-data zapewnia nieco wsparcia sprawdzania poprawności. Możesz to zobaczyć w niektórych częściach kodu i dokumentacji:
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
Adapter REST nie dodaje do siebie obsługi walidacji, ale okazało się, że jeśli dodam coś takiego w wywołaniach ajax, mogę umieścić model w „nieprawidłowym” stanie z obiektem błędów, który pochodzi ze strony serwera:
error: function(xhr){
var data = Ember.$.parseJSON(xhr.responseText);
store.recordWasInvalid(record, data.errors);
}
Mogę więc łatwo:
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.
Rzecz jest taka: jak widzisz,transakcje nie próbują ponawiać. To jest wyjaśnionetutaj itutaj.
Rzecz w tym, że jeśli nie mogę ponownie użyć zatwierdzenia, jak mam sobie z tym poradzić? Podejrzewam, że ma coś wspólnego z faktem, że asynchronicznie wprowadzam model doinvalid
stan - przezczytanie dokumentacjiwygląda na to, że chodzi o walidację po stronie klienta. W takim przypadku, jak mam z nich korzystać?