Ajax 如何在余烬数据中获取HTTP状态码

Ajax 如何在余烬数据中获取HTTP状态码,ajax,asynchronous,ember.js,ember-data,Ajax,Asynchronous,Ember.js,Ember Data,当我调用 App.store.createRecord(App.User, { name: this.get("name") }); App.store.commit(); 我如何知道它是否成功以及如何等待asyn消息?非常有限的错误处理是在ember data master中对DS.RESTAdapter进行的 创建或更新记录(禁用批量提交)并返回介于400和599之间的状态代码时,将发生以下情况: 422不可处理实体将记录转换为“无效”状态,并将从服务器返回的任何错误添加到记录的e

当我调用

 App.store.createRecord(App.User,  { name: this.get("name") });
 App.store.commit();

我如何知道它是否成功以及如何等待asyn消息?

非常有限的错误处理是在ember data master中对DS.RESTAdapter进行的

创建或更新记录(禁用批量提交)并返回介于400和599之间的状态代码时,将发生以下情况:

  • 422不可处理实体
    将记录转换为“无效”状态,并将从服务器返回的任何错误添加到记录的
    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
    


更多的情况最终可能由ember data开箱即用来处理,但目前如果您需要特定的内容,您必须扩展
DS.RESTAdapter
,自定义其
diderro
函数以将其添加到您自己中。

非常有限的错误处理是在ember data master中对DS.RESTAdapter进行的

创建或更新记录(禁用批量提交)并返回介于400和599之间的状态代码时,将发生以下情况:

  • 422不可处理实体
    将记录转换为“无效”状态,并将从服务器返回的任何错误添加到记录的
    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
    


更多的情况最终可能由ember data开箱即用来处理,但目前如果您需要特定的内容,您必须扩展
DS.RESTAdapter
,自定义其
diderro
函数以将其添加到您自己中。

ember data目前在HTTP状态下不提供错误处理,但它在路线图上。到目前为止,一种方法是扩展适配器以使用jqueryajax
statusCode
,并为每个状态代码传递回调。在某种程度上与您的类似,但更多的是在错误处理方面。当涉及HTTP状态时,Ember-Data目前不提供错误处理,但它在路线图上。到目前为止,一种方法是扩展适配器以使用jqueryajax
statusCode
,并为每个状态代码传递回调。在某种程度上与您的类似,但更多的是在错误处理方面。