如何在Emberjs store.find方法中捕获HTTP错误?

时间:2014-08-04 10:22:13

标签: ember.js find ember-data store http-error

我在model的{​​{1}}挂钩中设置了CustomerRoute,如下所示:

setupController

但是我无法捕获HTTP错误(401未经授权,500内部服务器错误等)。

1 个答案:

答案 0 :(得分:2)

ember-data提供了一个钩子ajaxError来处理DS.RestAdapter中的所有错误消息。如果您为ApplicationAdapter编写它,将由基于RestAdapter的所有模型使用。以下是代码的外观(从ember文档中提取)

App.ApplicationAdapter = DS.RESTAdapter.extend({
  ajaxError: function(jqXHR) {
    var error = this._super(jqXHR);

    if (jqXHR && jqXHR.status === 422) {
      var jsonErrors = Ember.$.parseJSON(jqXHR.responseText)["errors"];

      return new DS.InvalidError(jsonErrors);
    } else {
      return error;
    }
  }
});

在ember文档http://emberjs.com/api/data/classes/DS.RESTAdapter.html#method_ajaxError

中链接相同内容