基于元数据的 Extjs 构建表单

Extjs building form on metadata

我将使用从服务器接收的元数据配置的 ExtJs 4 构建一个 FormPanel。元数据(json 数组)如下所示:

   {
      "metaData": {
      [
        {
           "allowBlank:": false, 
           "fieldLabel:": "labelText1", 
           "name:": "labelName1", 
           "emptyText:": "null"
        },
        {
           "allowBlank:": false, 
           "fieldLabel:": "labelText1", 
           "name:": "labelName1", 
           "emptyText:": "null"
        }
     ]
  },
  "success": true,
  "msg": "Unknown"
}

是否可以使用给定的 json 数组在运行时创建表单?所以是的,你能给一个教程或例子吗?

当然possible。基本上,您将元数据用作 items 并随时创建表单:

var metadata = [
        {
           "allowBlank": false, 
           "fieldLabel": "labelText1", 
           "name": "labelName1", 
           "emptyText": null
        },
        {
           "allowBlank": false, 
           "fieldLabel": "labelText1", 
           "name": "labelName1", 
           "emptyText": null
        }
     ];
Ext.create('Ext.form.Panel', {
    defaultType: 'textfield',
    width: 300,
    bodyPadding: 10,
    renderTo: Ext.getBody(),
    items: metadata
});

只需确保元数据 JSON 正确,从 属性 名称等中删除冒号(“fieldLabel”应该是,而不是“fieldLabel:”)。