1
App.store.createRecord(App.User, { name: this.get("name") });
App.store.commit();
我怎麼知道它的成功,以及如何等待ASYN消息?
App.store.createRecord(App.User, { name: this.get("name") });
App.store.commit();
我怎麼知道它的成功,以及如何等待ASYN消息?
對於ember-data master中的DS.RESTAdapter,非常有限的錯誤處理是recently added。
創建或更新記錄(與批量提交禁用)和400和599之間的狀態代碼被返回時,將發生以下情況:
甲422 Unprocessable Entity
將過渡記錄到「無效」狀態並會將從服務器返回的任何錯誤添加到記錄的errors
屬性中。
適配器假定服務器將在以下格式JSON迴應:
{
errors: {
name: ["can't be blank"],
password: ["must be at least 8 characters", "must contain a number"]
{
}
(錯誤消息本身可能是字符串或只是字符串數組燼數據目前不關心哪個)
爲了檢測這種狀態:
record.get('isValid') === false
所有其他狀態碼都會將記錄轉換到「錯誤」狀態。
爲了檢測這種狀態下,使用:
record.get('isError') === true
更多的情況下,最終可能通過燼數據開箱即用的,如果你需要一些具體的事情來處理,但是就目前而言,你必須擴展DS.RESTAdapter
,定製它的didError
函數來添加它自己。
Ember-Data目前不提供HTTP狀態的錯誤處理,但它在路線圖上。到目前爲止,一種方法是擴展適配器以使用jQuery Ajax'statusCode'併爲每個狀態代碼傳遞迴調。 [**這個問題**](http://stackoverflow.com/questions/13349035/emberjs-handle-401-not-authorized)與你的方式類似,但更多的是在錯誤處理方面。 – MilkyWayJoe