Ember.js 余烬数据-未找到记录(404)

Ember.js 余烬数据-未找到记录(404),ember.js,ember-data,Ember.js,Ember Data,人们如何处理来自余烬数据的404错误 目前,rest适配器以以下方式处理错误: didError: function(store, type, record, xhr) { if (xhr.status === 422) { var data = JSON.parse(xhr.responseText); store.recordWasInvalid(record, data['errors']); } else { store.recor

人们如何处理来自余烬数据的404错误

目前,rest适配器以以下方式处理错误:

  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);
    }
  },
在尝试保存模型时,我可以判断模型是否无效,但在执行find或findById时,我无法判断是否未找到该记录


人们是如何处理404错误的?

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

例如:

在FindAll或Find方法中,您有如下适配器

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);
        });
    }
});
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);
        });
    }
});