ExtJS 3.4中DirectStore和baseParams的问题

时间:2011-11-09 13:24:53

标签: extjs store extjs3

我在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(),但它也不起作用。 我以前曾经多次使用过商店,从来没有遇到这样的问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我自己找到了答案:我正在调用Extdirect API的配置错误。 action.class.php中的公共函数设置为

@extdirect-len 0

如果函数需要一个或多个请求参数,则必须设置

@extdirect-len 1

并且您必须重新生成extdirect API。就是这样