私はしばらくこのことに苦労してきました。誰かが私を助けることができるかどうかを見てみましょう。ember-data検証の標準パターンは何ですか? (invalid state、becomeInvalid ...)
明示的にReadmeに記載されていませんが、ember-dataはいくらかの検証サポートを提供します。あなたはコードとドキュメントのいくつかの部分にそれを見ることができます:
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
RESTアダプタ自体に検証のサポートを追加しませんが、私はこのような何かを追加するとことが判明しましたAjaxの呼び出しで、私は、サーバー側から来たエラーのオブジェクトで「無効」状態にモデルを置くことができます。
error: function(xhr){
var data = Ember.$.parseJSON(xhr.responseText);
store.recordWasInvalid(record, data.errors);
}
をだから私はできる簡単に次のように:
を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.
問題は:ご覧のとおり、取引はお勧めしません。これは、hereとhereと説明されています。
私はコミットを再利用できない場合、どうすればよいですか?私はちょっと疑問に思うのですが、私はモデルをinvalid
州に非同期的に入れています - reading the documentationによって、それはクライアント側のバリデーションのためのものであるようです。この場合、どのように使用すればよいですか?
は、これが問題になることはないでしょうか? –