2

人们如何处理来自 ember-data 的 404 错误?

目前,rest-adapter 以这种方式处理错误:

  didError: function(store, type, record, xhr) {
    if (xhr.status === 422) {
      var data = JSON.parse(xhr.responseText);
      store.recordWasInvalid(record, data['errors']);
    } else {
      store.recordWasError(record);
    }
  },

我可以在尝试保存模型时判断模型是否无效,但我无法判断在执行查找或 findById 时是否找不到记录。

人们如何处理 404 错误?

4

1 回答 1

0

我所做的是在服务器中有 404 页面,实际上只有 JSON 字符串提到了错误。并在 Ember 中处理它们。可能有更好的方法,但这很容易,不会浪费你很多时间。

例如:

[{"msg":"Data Not Found"}]

在 FindAll 或 Find 的 Adapter 方法中你有这样的

DS.Adapter.create({
    find: function(store, type, id) {
        var url = type.url;
        url = url.fmt(id);

        jQuery.getJSON(url, function(data) {
            // data is a Hash of key/value pairs. If your server returns a
            // root, simply do something like:
            // store.load(type, id, data.person)
            if(data.msg!=="Data Not Found")
                store.load(type, id, data);
        });
    }
});
于 2012-12-18T12:09:03.733 回答