我是否使用ExtJS从数据库创建formPanel dynamyc(从服务器到对象extjs的字符串结果)
Ext.Ajax.request({
async : false,
method : 'POST',
url : '/Devt/GetFormItemCustomization',
params : {
TableName : 'tabeltest',
col : 1
},
success : function (response) {
var results = Ext.decode(response.responseText);
console.log(results );
var form = Ext.create('Ext.form.Panel', {
width : 300,
bodyPadding : 10,
renderTo : 'formCustDiv',
name : "test",
items : [results]
});
}
})
来自服务器的响应:
{
fieldLabel:'Employee Id',
xtype:'textfield',
allowBlank:false,
},
{
fieldLabel:'Nick Name',
xtype:'textfield',
allowBlank: false,
}
但这仅从最后一个数据创建一个对象。 对象
{
fieldLabel: "Nick Name",
xtype: "textfield",
allowBlank: false
}
我希望服务器解码的响应成为两个对象:
对象 {fieldLabel: "Employee Id", xtype: "textfield", allowBlank: false}
对象 {fieldLabel: "Nick Name", xtype: "textfield", allowBlank: false}
有什么建议吗?
答案 0 :(得分:1)
好吧,你的服务器应该总是返回有效的JSON。逗号分隔的两个对象不是有效的JSON。 (如果您不相信我,可以查看许多在线JSON验证器之一。)您的服务器是否可能返回一个对象数组?像这样:
[
{fieldLabel: "Employee Id", xtype: "textfield", allowBlank: false},
{fieldLabel: "Nick Name", xtype: "textfield", allowBlank: false}
]
在这种情况下,您可以通过删除results
变量周围的数组轻松地继续创建表单:
var form = Ext.create('Ext.form.Panel', {
width : 300,
bodyPadding : 10,
renderTo : 'formCustDiv',
name : "test",
items : results
});