在Ajax请求的框架中,我尝试使用嵌套对象作为参数“baseParams”。基本上,我想生成一个像“ajax.php? foo [controller] = demo& foo [action] = index ”的网址。
Bellow是错误产生的代码:“ajax.php? foo = [object]& foo = [object] ”。
Ext.data.JsonStore( baseParams: { foo: { controller: 'demo', action: 'index' } }, proxy: new Ext.data.HttpProxy({ method: 'GET', url: '/ajax.php' }), (...) );
当然,我可以写一些类似下面的东西,但我正在寻找一个更好的解决方案。
Ext.data.JsonStore( proxy: new Ext.data.HttpProxy({ method: 'GET', url: '/ajax.php?foo[controller]=demo&foo[action]=index' }), (...) );
经过几次尝试,我想知道它是否真的有可能。但也许我错过了什么。你能帮忙吗?
答案 0 :(得分:3)
或者使用类似这样的东西(比长网址字符串更好):
baseParams: {
'foo[controller]': 'demo',
'foo[action]': 'index'
}
答案 1 :(得分:1)
我做了类似这样的事情,这与Igor Pavelek的回应完全相同,只是程序化程度更高:
var foo = {
'controller' : 'demo',
'action' : 'index'
};
var gfObj = new Ext.ux.grid.GridFilters({paramPrefix: 'foo'});
var bp = gfObj.buildQuery(foo);
Ext.data.JsonStore({
baseParams : bp,
(...)
});
答案 2 :(得分:0)
baseParams: {
foo['controller']: 'demo',
foo['action']: 'index'
}
我会推荐这个,我认为上面的逗号有简单的区别