1

我有以下 JSON,从后端接收它:

{
    "scripts": [
        "actions/rss",
        "actions/db/initDb",
        "actions/utils/MyFile",
        "actions/utils/Valid"
    ],
    "success": true
}

JSON 存储:

    this.store = new Ext.data.JsonStore({

        proxy: new Ext.data.HttpProxy({
            url: "http://www.example.com",
            method: 'POST'
        }),
        baseParams: {
            appId: "hsvdvndcnwvwbasxcwyc"               
        },
        root: 'scripts',
        fields: ['value']

    });

组合框:

    this.aField = new Ext.form.ComboBox({
        fieldLabel      : 'action',
        name        : 'actionName',
        anchor      : "95%",                     
        allowBlank      : false,
        emptyText       : "Select action",            

    triggerAction   : 'all',
    lazyRender      : true,
    mode            : 'remote',
        store           : this.store,
    valueField      : 'value',
    displayField    : 'value'
    });     

所以,我收到后端的回复,没关系。但是我的组合框下拉列表是空的(它显示 10 个空行,它们等于 JSON 中的项目数)。我知道问题出在 JSON Store 的字段属性中。但是我应该放什么让它工作呢?

谢谢!

4

1 回答 1

1

尝试修改“JSON 存储:”代码,将 root: 'scripts' 放入侧阅读器对象并添加类型并在代理中添加阅读器。

所以 JSON 存储:代码应该如下所示

this.store = new Ext.data.JsonStore({
   proxy: new Ext.data.HttpProxy({
        url: "http://www.example.com",
        method: 'POST',
        reader: {            
                  type:'json',
                  root: 'scripts'
        }
    }),
    baseParams: {
        appId: "hsvdvndcnwvwbasxcwyc"               
    },

    fields: ['value']
});
于 2013-01-24T16:48:57.713 回答