Arrays 如何通过sencha的store发布数组
我创建了一个存储,并用一个数组中的一些参数初始化它。当我执行load函数时,数组参数变成字符串“[object]” 守则如下:Arrays 如何通过sencha的store发布数组,arrays,extjs,load,store,Arrays,Extjs,Load,Store,我创建了一个存储,并用一个数组中的一些参数初始化它。当我执行load函数时,数组参数变成字符串“[object]” 守则如下: t1:[object Object] t1:[object Object] t2:ddd 商店: Ext.define('test.store.info',{ extend: 'Ext.data.Store', config:{ model:'test.model.info', proxy:{ t
t1:[object Object]
t1:[object Object]
t2:ddd
商店:
Ext.define('test.store.info',{
extend: 'Ext.data.Store',
config:{
model:'test.model.info',
proxy:{
type:'ajax',
url:'http://domain/path',
actionMethods:'POST'
}
}
});
型号:
Ext.define('test.model.info',{
extend:'Ext.data.Model',
config:{
fields:[
'code',
'data'
]
}
})
在控制器中使用:
var store = Ext.getStore('info');
params = {
t1:[{
f1:'aa'
},{
f2:'bb'
}],
t2:'ddd'
}
console.log(params)
store.load({
params:params
});
或者我只是使用Ajax函数代替load函数,结果是一样的
Ext.Ajax.request({
url:'http://domain/path',
method:'post',
params:params,
});
我在浏览器的网络中检查xhr,它是一个字符串,如下所示:
t1:[object Object]
t1:[object Object]
t2:ddd
当我检查服务器日志时,它显示:
t1:'[object Object]'
t1:'[object Object]'
t2:'ddd'
我找到了解决办法,谢谢 1,在Ajax期间只需使用jsonData而不是参数,如下所示: 2,或者在发送前对数据进行编码
如果您将参数命名为“foo[]”,那么它将编码为POST数组,以便在服务器端使用。请注意末尾的
[]
var companies = [1,2,3];
Ext.Ajax.request({
url: '...',
method: "post",
params: {
'companies[]': companies,
},
success: function (response) {
console.log("done");
}
});
var companies = [1,2,3];
Ext.Ajax.request({
url: '...',
method: "post",
params: {
'companies[]': companies,
},
success: function (response) {
console.log("done");
}
});