2012-12-18 52 views
2

人們如何處理來自餘燼數據的404錯誤?ember-data - 未找到記錄(404)

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

我所做的是在服務器中有404頁面,實際上它只是提供錯誤的JSON字符串。並在Ember中處理它們。可能有更好的方法,但這很容易,不會浪費你的大部分時間。

例如:適配器的

[{"msg":"Data Not Found"}] 
中的FindAll

或查找方法,你有這樣的

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