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

时间:2011-06-21 12:34:14

标签: javascript tree store extjs4

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

提前致谢。

EXTJS 3.x我用过这样的工作正常:

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

EXTJS 4.x我已经使用过这样但它无法正常工作:

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
    }
});

谢谢, Riyaz

3 个答案:

答案 0 :(得分:5)

您应该使用当前Ext JS 4 API Documentation仔细检查配置参数。

乍看之下我看到了:

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

  2. extraParams属于代理,而不属于树配置。

  3. 因此,您的商店配置应如下所示:

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

    您是否已验证是否至少已向服务器发送了Ajax请求?您可以使用FireBug轻松查看此内容。

答案 1 :(得分:0)

正确设置的示例:

  actionMethods: {
                destroy:'DELETE',
                create: 'POST',
                update: 'POST',
                read: 'GET'
            },

答案 2 :(得分:-3)

这是正确的

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
    }
});