1

我有一些格式如下的 json 数据:

{
    "id":1,
    "personMap":{
        "president":{"firstname":"Sookie","lastname":"Stackhouse"},
        "vicepresident":{"firstname":"Eric","lastname":"Northman"},
        "treasurer":{"firstname":"Alcide","lastname":"Herveaux"}
    }
}

如何定义我的模型,以便地图中的值加载正确的对象类型?那可能吗?

以下将加载数据,但值未键入为“Person”对象:

Ext.define('Committee', {
    extend: 'Ext.data.Model',
    fields: [ 'id', 'personMap' ]
});

下面将期望 personMap 是一个数组而不是一个地图:

Ext.define('Committee', {
    extend: 'Ext.data.Model',
    fields: [ 'id' ],
    hasMany: [{
        model: 'Person',
        name: 'personMap'
    }]
});

Ext.define('Person', {
    extend: 'Ext.data.Model',
    fields: [ 'firstname', 'lastname' ]
});
4

1 回答 1

2

hasMany 配置仅适用于数组。将数据结构更改为,

{
  "id": 1,
  "personMap": [
    {
      "firstname": "Sookie",
      "lastname": "Stackhouse",
      "title": "president"
    },
    {
      "firstname": "Eric",
      "lastname": "Northman",
      "title": "vicepresident"
    },
    {
      "firstname": "Alcide",
      "lastname": "Herveaux",
      "title": "treasurer"
    }
  ]
}

可以解决问题,但如果这不是一个选项,则不能使用 hasMany 配置。

于 2012-08-25T00:02:16.533 回答