EXTJS将字符串数组映射到模型字段值

时间:2015-03-12 17:39:45

标签: json extjs

我正在使用EXT JS 4.1.1。

我有这样的json响应:

{ values: ["A","B","C"] }

然后我有一个这样的模型:

Ext4.define('model', {
    extends: 'Ext4.data.model',
    fields: [ 'name' ]
});

我正在尝试使用一个值name创建模型,该值对应于上面的json values,以便我可以在ComboBox中使用name值。

Ext4.define('store',{
    extend: 'Ext4.data.Store',
    model: 'model',
    requires: 'model',
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            root: 'values',
            successProperty: 'success'
        }
    }
});

我遇到的问题是,在使用name属性填充我的ComboBox时,它是空的("")。 raw值是正确的,它直接对应于适当的值。

如何将此数组值正确映射到name模型上的model字段?

1 个答案:

答案 0 :(得分:1)

这实际上并不是一个合适的JSON响应,请将其粘贴到http://jsonlint.com/中,您将亲眼看到。

相反,您的JSON应该如下所示:

{
    "values": [
        {
            "name": "A"
        },
        {
            "name": "B"
        },
        {
            "name": "C"
        }
    ]
}

如果您粘贴到上面的jsonlint链接中,您将看到它是有效的。

商店读者期望在数据中看到“名称”属性,但不能,这就是您看到此行为的原因。