Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 加载json数据后,extjs4表单仍然为空_Javascript_Forms_Load_Extjs4 - Fatal编程技术网

Javascript 加载json数据后,extjs4表单仍然为空

Javascript 加载json数据后,extjs4表单仍然为空,javascript,forms,load,extjs4,Javascript,Forms,Load,Extjs4,我开始疯狂使用extjs4和表单加载。 在我的struts应用程序中,我有一个简单的表单,我想加载JSON数据 问题是数据从服务器正确加载,但从未显示 代码如下: Ext.onReady(function(){ var formPanel = Ext.create('Ext.form.Panel', { renderTo: Ext.get('categoryForm'), width: 340, bodyPadding: 5, waitMsgTarget: tr

我开始疯狂使用extjs4和表单加载。 在我的struts应用程序中,我有一个简单的表单,我想加载JSON数据

问题是数据从服务器正确加载,但从未显示

代码如下:

Ext.onReady(function(){

var formPanel = Ext.create('Ext.form.Panel', {
    renderTo: Ext.get('categoryForm'),
    width: 340,
    bodyPadding: 5,
    waitMsgTarget: true,
    url: '<s:url value="json/save" />',
    method: 'POST',

    loader: {
        type: 'json',
        root: 'category',
        successProperty: 'success'
    },

    fieldDefaults: {
        labelAlign: 'right',
        labelWidth: 85,
        msgTarget: 'side'
    },
    defaultType: 'textfield',

    items: [{
        name: 'category.id',
        hidden: true
    }, {
        fieldLabel: "<s:text name="category.label"/>",
        name: 'label',
        allowBlank: false,
        maxLength: 35
    }, {
        fieldLabel: "<s:text name="category.description"/>",
        name: 'description',
        xtype: 'textarea',
        maxLength: 250
    }, {
        fieldLabel: '<s:text name="category.creationDate"/>',
        name: 'creationDate',
        xtype: 'datefield',
        readOnly: true
    }],

    buttons: [{
        text: "<s:text name="action.modify"/>",
        handler: function() {
            formPanel.getForm().submit();
        }
    }, {
        text: "<s:text name="action.cancel"/>",
        handler: function() {
            formPanel.getForm().reset();
        }
    }]
});
formPanel.show();

formPanel.load({
    url: '<s:url action="json/load"/>',
    params: {
        categoryId: <s:property value="categoryId"/>
    }
});
});

最后我找到了问题所在

JSON响应必须包含“data”属性而不是“category”


替换属性并填写表单。

是否没有js错误?因为我认为“name:'category.id',”会导致js错误,因为json根目录是category,所以name应该是'id',这是一个先例尝试中的错误。没有js错误。我删除了它,没有任何变化,我的表单是空的。
{
    "category":
    {
        "creationDate": "2012-04-14T22:29:52",
        "description":"description",
        "id":1,
        "label":"Toto"
    },
    "errorMessage":null,
    "success":true
}