ExtJS 3.4 中 DirectStore 和 baseParams 的问题

Posted

技术标签:

【中文标题】ExtJS 3.4 中 DirectStore 和 baseParams 的问题【英文标题】:Problems with DirectStore and baseParams in ExtJS 3.4 【发布时间】:2011-11-09 13:24:53 【问题描述】:

我在 ExtJs 3.4 的 DirectStore 中使用 baseParams 时遇到了一个奇怪的问题:尽管 baseParams 是在 store 对象中设置的,但在进行 API 调用(使用 extdirect)时,baseParams 为 NULL。我通过在“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】:

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

@extdirect-len 0

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

@extdirect-len 1

然后您必须重新生成 extdirect API。就是这样

【讨论】:

以上是关于ExtJS 3.4 中 DirectStore 和 baseParams 的问题的主要内容,如果未能解决你的问题,请参考以下文章

extjs 3.4 中 TabPanel 中的标题折叠

EXTJS 3.4 面板中的项目对齐问题

Extjs 3.4 中的日期格式不呈现和显示

Extjs 4 商店 - 查询整个商店而不仅仅是缓存的记录

ExtJS 3.4 滑块控件

ExtJS (3.4):更新 TabPanel 中面板的工具提示