Extjs4 从嵌套json读取数据

Extjs4 从嵌套json读取数据,extjs4,Extjs4,我以前的帖子也是这样。这是我从服务器获得的更改后的json {"property":[{"@length":"10","@mandatory":"true","@type":"String","@label":"Description","@id":"desc"},{"@mandatory":"false","@type":"Number","@label":"Code","@id":"code"},{"@mandatory":"true","@type":"Boolean","@label":

我以前的帖子也是这样。这是我从服务器获得的更改后的json

{"property":[{"@length":"10","@mandatory":"true","@type":"String","@label":"Description","@id":"desc"},{"@mandatory":"false","@type":"Number","@label":"Code","@id":"code"},{"@mandatory":"true","@type":"Boolean","@label":"Check","@id":"check"},{"@mandatory":"true","@type":"DateField","@label":"Date","@id":"date"},{"@mandatory":"true","@type":"List","@label":"Types","@id":"types","options":[{"@value":"eee"},{"@value":"fff"}]}]}
我想在组合框中呈现类型的选项数组。这是模型

Ext.define('Property', {

        extend : 'Ext.data.Model',

        fields : [ {
            name : 'id',
            mapping : '@id'
        }, {
            name : 'label',
            mapping : '@label'
        }, {
            name : 'type',
            mapping : '@type'
        }, {
            name : 'mandatory',
            mapping : '@mandatory'
        }, {
            name : 'length',
            mapping : '@length'
        } ],
        // {name : 'values', mapping : 'options[0].@value'}], didnt work
        hasMany : {
            model : 'Options',
            name : 'options'
        }
    });

Ext.define('Options', {
        extend : 'Ext.data.Model',
//      reader : {
            type : 'json',
            root : 'options'
            },

        fields : [ {
            name : 'value1',
            mapping : '@value'
        } ],
        associations : [ {
            type : 'belongsTo',
            model : 'Property'
        } ]
    });

找不到哪里出了问题。有人能给我建议正确的方法吗?

我认为你应该研究一下模型中的“关联”概念,并使用hasMany/属于关系。依我看,这将使代码变得更简单、更清晰,同样,当您需要使用试图设置的数据时,代码中的其他部分也会变得更有用

有关协会的更多信息,请参阅


如何配置组合存储?如果已经获取了数据,则可以通过访问返回到存储的原始数据来设置组合的数据