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

发布于 2024-11-16 11:09:52 字数 651 浏览 0 评论 0原文

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

提前致谢。

EXTJS 3.xi 已经这样使用,它工作正常:

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

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

谢谢, 里亚兹

I am using Extjs4 TreeStore, i want to know how to pass parameters (like mode = 'list') and action methods (POST or GET).

Thanks in advance.

EXTJS 3.x i have used like this it's working fine:

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

EXTJS 4.x i have used like this but it is not working:

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

Thanks,
Riyaz

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

§普罗旺斯的薰衣草 2024-11-23 11:09:52

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

我第一眼看到的是:

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

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

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

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 轻松检查这一点。

You should carefully check your configuration parameters with the current Ext JS 4 API Documentation.

What I see at first glance:

  1. actionMethods is an object and not a string value configuration. It's implemented in both the AJAX and the REST proxies. If your need a full featured editable tree, consider a REST proxy. Only if you go beyond CRUD, you need to provide additional actionMethods to the REST proxy.

  2. extraParams belongs to the Proxy and not to the tree configuration.

So your store configuration should look like:

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

Have you verified if at least an Ajax request has been sent to the server? You can easily check this with FireBug.

古镇旧梦 2024-11-23 11:09:52

正确设置示例:

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

example of correct setting:

  actionMethods: {
                destroy:'DELETE',
                create: 'POST',
                update: 'POST',
                read: 'GET'
            },
娇柔作态 2024-11-23 11:09:52

这是正确的

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

This the correct one

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
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文