私が呼び出すとき
App.store.createRecord(App.User, { name: this.get("name") });
App.store.commit();
成功したかどうかを知る方法と、非同期メッセージを待つ方法を教えてください。
私が呼び出すとき
App.store.createRecord(App.User, { name: this.get("name") });
App.store.commit();
成功したかどうかを知る方法と、非同期メッセージを待つ方法を教えてください。
最近、非常に限定されたエラー処理がember-datamasterのDS.RESTAdapterに追加されました。
レコードを作成または更新し(バルクコミットが無効になっている場合)、400〜599のステータスコードが返されると、次のようになります。
A422 Unprocessable Entity
は、レコードを「無効」状態に遷移させ、サーバーから返されたエラーをレコードのerrors
プロパティに追加します。
アダプターは、サーバーが次の形式のJSONで応答することを前提としています。
{
errors: {
name: ["can't be blank"],
password: ["must be at least 8 characters", "must contain a number"]
{
}
(エラーメッセージ自体は、文字列の配列または単なる文字列である可能性があります。ember-dataは現在どちらを気にしません。)
この状態を検出するには:
record.get('isValid') === false
他のすべてのステータスコードは、レコードを「エラー」状態に移行します。
この状態を検出するには、次を使用します。
record.get('isError') === true
最終的には、箱から出してember-dataで処理されるケースが増える可能性がありますが、今のところ、特定のものが必要な場合は、関数をDS.RESTAdapter
カスタマイズして自分で追加する必要があります。didError