1

私は 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.extraParamsnullまたは未定義です。

これが IE でのみ発生する理由を誰か助けてもらえますか?

4

3 に答える 3

1

これを試すこともできます

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

于 2013-05-31T11:18:37.787 に答える
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'
    }
},
...
});
于 2013-05-31T10:00:02.070 に答える