我在ExtJs 3.4的DirectStore中使用baseParams时遇到了一个奇怪的问题:当API调用(使用extdirect)时,baseParams为NULL,尽管baseParams是在store对象中设置的。我通过在“beforeLoad”期间将完整的商店对象写入控制台来检查这一点。我的商店看起来像这样:
this.store= new Ext.data.DirectStore({
storeId: 'HereComesTheId',
api: {
read: Abc.pluginName.listSomeStuff
},
listeners: {
'load': function (store, records, options) {
Ext.each(records, function (record, index, all) {
if (record.data.selected === true) {
store.fireEvent('someThingsHappened', record, index);
return false;
}
}, this);
}
},
reader: new Ext.data.JsonReader(),
remoteSort: false,
autoLoad: true,
baseParams:{
'param1': Ext.getCmp('Blub').param1,
'param2': '123'
},
});
我也试过使用setBaseParams(),但它也不起作用。 我以前曾经多次使用过商店,从来没有遇到这样的问题。有什么想法吗?
答案 0 :(得分:0)
我自己找到了答案:我正在调用Extdirect API的配置错误。 action.class.php中的公共函数设置为
@extdirect-len 0
如果函数需要一个或多个请求参数,则必须设置
@extdirect-len 1
并且您必须重新生成extdirect API。就是这样