2012-01-16 15 views
1

當與存儲關聯的代理遇到異常(如404)時,我可以以某種方式停止.load()過程嗎?如果代理遇到異常,Ext JS 4.0取消存儲加載

我正在使用Ajax代理。有一個'exception' event on the proxy,但我無法弄清楚在回調中究竟做什麼。

眼下,存儲嘗試的東西到數據模型(使用我定義的映射),即使沒有數據,這會導致難看的紅色錯誤消息。

UPDATE

也許它會更好,不會停止負載()過程,而是以處理事情(閱讀器?)丟失的數據,實際上轉換JSON到模型實例。這個想法是優雅地處理丟失的數據。我會怎麼做?

回答

0

這是一個有點棘手,特別是如果你的小店是綁在DataViewer的組件。

load()進程將在到達exception事件後暫停,因此我相信您在那裏沒有控制權。

你可以處理Ajax的exception事件,通過上述store.add()手動填充數據進店,

ajax.on('exception', function() { 
    // since exception was called, i'll have to input data myself. 
    store.add({ 
     field1: 'value1', 
     field2: 'value2' 
    }); 
}); 

我的代碼是基於ExtJS的3語法和可能與ExtJS的4的變化,但是這個概念應該是相同的。

+0

標記爲接受,即使我通過使後端始終提供漂亮的答卷「固定」它。 – nisc 2012-03-19 15:08:58