2013-05-31 106 views
1

我有一個ExtJs商店。Extjs store.proxy.extraParams未定義只在Internet Explorer中

var fieldsStore = new Ext.create('Ext.data.Store', { 
model : 'FieldsModel', 
proxy : { 
    type : 'ajax', 
    url : 'queryBuilder_getQueryDetails', 
    extraParams : { 
     queryID : queryID 
    }, 
    reader : { 
     type : 'json' 
    } 
}, 
listeners : { 
    load : function(store, records, successful, operation, eOpts) { 
     if (successful) { 
      records.forEach(function(rec) { 
       // default settings: if datatype is INTEGER - SUM 
       if (rec.get('fieldType') == 'INTEGER') { 
        rec.set('fieldSettingKey', 'SUM'); 
        rec.set('fieldSettingValue', 'Sum'); 
       } else { 
        // else select ROWHEADER by default 
        rec.set('fieldSettingKey', 'ROWHEADER'); 
        rec.set('fieldSettingValue', 'Row Header'); 
       } 
      }); 
      store.commitChanges(); 
     } 
    } 
} 
}); 

現在,當我做fieldsStore.proxy.extraParams.queryID = arrQuery.queryId;,我在Internet Explorer中出現錯誤。不在Chrome或FF中,但只在IE中。

它說fieldsStore.proxy.extraParams爲空或未定義。

任何人都可以幫助爲什麼這隻發生在IE瀏覽器?

回答

0

嘗試:

fieldsStore.getProxy().extraParams = arrQuery.queryId; 

編輯:

您可以刪除它,當你這樣做:

fieldsStore.getProxy()extraParams = { 'queryID':queryID}。此代碼自動定義您的extraParams配置。

var fieldsStore = new Ext.create('Ext.data.Store', { 
model : 'FieldsModel', 
proxy : { 
    type : 'ajax', 
    url : 'queryBuilder_getQueryDetails', 
    //----------------------- 
    extraParams : { 
     queryID : queryID 
    }, 
    //----------------------- 
    reader : { 
     type : 'json' 
    } 
}, 
... 
}); 
+0

我在IE 8,這仍然doenst工作 – DarkKnightFan

+0

呀,你需要使用JSON對象做,如: { 'queryId':arrQuery.queryId} - 編輯:UPPS,我已經看了你的新的評論。你不需要在代理/存儲定義上定義extraParams:{queryID:queryID},它將使用該代碼進行收費。 – mfruizs2

+0

對不起,但我不明白你最後的聲明「並且你不需要定義extraParams:{queryID:queryID},代理/存儲定義,它將與該代碼負責。」你能詳細說明嗎? – DarkKnightFan

1

你也可以試試這個

fieldsStore.getProxy()setExtraParam( 'queryID',arrQuery.queryId)。

+0

說 - 對象不支持這個屬性或方法 – DarkKnightFan

相關問題