2010-10-12 62 views
-1

我想修改我的JavaScript頁面,它使用的Ext JS庫。(我沒有關於Ext JS的任何想法,都沒有工作的,要麼)有條件呼叫

我想要做的是基於JSON DATA特別是字段「successProperty」,我想決定是否上傳網格或給出警報。

我可以做的是給課堂添加一個活動。但我不知道該怎麼做。

有人可以給我一個很好的例子,可以幫助我實現我所需要的。

謝謝。

請讓我知道如果我需要提供更多的細節再次

感謝..

回答

0

的「successProperty」是不是你的想法。該屬性由ExtJS內部使用,以瞭解如何確定該方法是否有錯誤。它是一個包含返回的JSON內部屬性的「名稱」的字符串,它將告訴ExtJS框架出現問題,而不是錯誤狀態本身。所以,這就是ExtJS讓你「定義」這個屬性的原因。作爲你的服務器端會被你定義,你可以選擇你想你的成功狀態任何名稱,如果你選擇比success不同的東西(這是默認successProperty),那麼你在successProperty配置定義它JsonReader的屬性。

而簡單的方法來檢測是否一個錯誤,當你加載一個網格檢查callback第三個參數(稱爲success)在load方法發生了:

store.load({ 
    params:{start:0, limit:15}, 
    callback: function(result, options, success) { 
     if (!success) { 
      alert('error!!'); 
     } 
    } 
}); 

有更通用的方法處理服務器端錯誤,而不是定義在每個store.load回調,您可以使用:

// Listen to "exception" event fired by all proxies 
Ext.data.DataProxy.on('exception', function(proxy, type, action, ex) { 
    alert('Error through DataProxy.exception at ' + type + '.'+ action); 
}); 

或者,如果已經是我們荷蘭國際集團Ext.Direct你可以使用它的exception事件(可能是您沒有使用Ext.Direct,所以不要指望它只是單獨工作):

Ext.Direct.on('exception', function(ex) { alert(ex.message); }); 

我把一個完整的例子與第2捕捉錯誤的方法:http://jsfiddle.net/vZGvM/。 該示例沒有錯誤,但您可以通過將ScriptTagProxy的URL指向任何無效url(如果您這樣做需要一定的響應時間,但您會看到兩個警報)來模擬錯誤。