EXTJS4 - 对于TreeStore,如何传递参数和动作方法?

Riy*_*med 2 javascript tree store extjs4

我正在使用Extjs4 TreeStore,我想知道如何传递参数(如mode ='list')和动作方法(POST或GET).

提前致谢.

EXTJS 3.xi使用这样的工作正常:

loader: new Ext.tree.TreeLoader({
    dataUrl: 'content/permissions/server.php',
    baseParams: {
        mode: 'getPermissions'
    }
})
Run Code Online (Sandbox Code Playgroud)

EXTJS 4.xi已经使用过这样的功能,但它不起作用:

Ext.create('Ext.data.TreeStore', {
    autoLoad: true,
    proxy: {
        type: 'ajax',
        url: 'server.php'
    },
    extraParams: {
        mode: 'getTree'
    },
    actionMethods: 'POST',
    root: {
        text: 'Tree',
        id: 'src',
        expanded: true
    }
});
Run Code Online (Sandbox Code Playgroud)

谢谢,Riyaz

Net*_*rat 5

您应该使用当前的Ext JS 4 API文档仔细检查配置参数.

我乍一看的是:

  1. actionMethods是一个对象,而不是字符串值配置.它在AJAX和REST代理中实现.如果您需要功能齐全的可编辑树,请考虑使用REST代理.只有当您超越CRUD时,才需要为actionMethodsREST代理提供额外的功能.

  2. extraParams属于Proxy 而不属于树配置.

所以你的商店配置应如下所示:

Ext.create('Ext.data.TreeStore', {
  autoLoad: true,
  proxy: {
    type: 'ajax',
    url: 'server.php',
    extraParams: {
      mode: 'getTree'
    },
  },
  root: {
      text: 'Tree',
      id: 'src',
      expanded: true
  }
 });
Run Code Online (Sandbox Code Playgroud)

您是否已验证是否至少已向服务器发送了Ajax请求?您可以使用FireBug轻松检查.