extJs - заполнить сетку массивом массивов

У меня есть множество людей, у каждого человека есть множество контактов. Данные в формате JSON:

[
  {
    "id": 7900,
    "position": "Tillitsvalgt",
    "person": {
      "id": 1000001,
      "lastName": "Andrushko",
      "contacts": [
        {
          "id": 1000001,
          "personId": 1000001,
          "type": {
            "id": 5,
            "name": "Mobile phone"
          },
          "value": "25417"
        },
        {
          "id": 1000002,
          "personId": 1000001,
          "type": {
            "id": 35,
            "name": "Mobile phone"
          },
          "value": "945417"
        }
      ]
    }
  },
  {
    "id": 7900,
    "position": "Tillitsvalgt",
    "person": {
      "id": 1000001,
      "lastName": "Andrushko",
      "contacts": [
        {
          "id": 1000001,
          "personId": 1000001,
          "type": {
            "id": 5,
            "name": "Mobile phone"
          },
          "value": "25417"
        },
        {
          "id": 1000002,
          "personId": 1000001,
          "type": {
            "id": 35,
            "name": "Mobile phone"
          },
          "value": "945417"
        }
      ]
    }
  }
]

Я хочу отобразить две сетки: первая с персонами, а вторая с контактами для выбранного человека. Я создал две модели:

Ext.define('Person', {
    extend: 'Ext.data.Model',

    fields: [
        {
            mapping: 'person.lastName',
            name: 'lastName'
        }
    ],

    hasMany: [
        {
            associationKey: 'person.contacts',
            model: 'Contact',
            name: 'contacts'
        }
    ],
    proxy: {
        type: 'ajax',
        url: 'MemberServlet?operation=get',
        reader: {
            type: 'json'
        }
    }
});

и модель для контактов:

Ext.define('Contact', {
    extend: 'Ext.data.Model',

    fields: [
        {
            mapping: 'type.name',
            name: 'type'
        },
        {
            name: 'value'
        }
    ],

    belongsTo: {
        model: 'Person'
    }
});

В такой конфигурации моя вторая сетка отображает контакты для всех людей, я хочу, чтобы она отображалась только для выбранного человека. Как мне это сделать?

0 ответов

Другие вопросы по тегам