人们如何处理来自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);
}
},
我可以判断一个模型在尝试保存时是否无效但我无法判断在执行find或findById时是否找不到该记录。
人们如何处理404错误?
答案 0 :(得分:0)
我所做的是在服务器中有404页面,实际上只有JSON字符串提到错误。并在Ember中处理它们。可能有更好的方法,但这很容易,不会浪费你的大部分时间。
例如:
[{"msg":"Data Not Found"}]
在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);
});
}
});