我正在使用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
答案 0 :(得分:5)
您应该使用当前Ext JS 4 API Documentation仔细检查配置参数。
乍看之下我看到了:
actionMethods是一个对象,而不是字符串值配置。它在AJAX和REST代理中实现。如果您需要功能齐全的可编辑树,请考虑使用REST代理。只有当您超越CRUD时,才需要向REST代理提供额外的actionMethods
。
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轻松查看此内容。
答案 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
}
});