Extjs store.proxy.extraParams仅在ie浏览器中未定义

Extjs store.proxy.extraParams is undefined only in Internet Explorer

本文关键字:浏览器 未定义 ie 仅在 store proxy extraParams Extjs      更新时间:2023-09-26

我有一个ExtJs商店。

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?

你也可以试试这个

fieldsStore.getProxy()。settextraparam ('queryID', arquery。queryId);

找到一个替代方法。

fieldsStore.proxy.extraParams = {queryID : arrQuery.queryId};

try with:

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'
    }
},
...
});