Extjs combobox - получение более глубоких значений json - PullRequest
1 голос
/ 23 апреля 2011

По внутренним причинам я должен отправить обратно с комбо-сервера следующую строку json:

{"root":[{"employeeId":1,"user":{"userName":"admin"}}]}

Как вы видите, пользователь на самом деле является объектом, каким-либо образом, что комбобокс сможет его прочитать?
Комбо настроен следующим образом:

      ,displayField:'user.userName'
          ,title:'Manager'
          ,xtype: 'numberfield'
          ,hiddenName:  'employeeId'
          ,valueField : 'employeeId'

это магазин:

var store = new Ext.data.JsonStore({
    autoLoad: true,
    url: "/some_data",
    root: 'root',   
    methos:'POST',
    fields:[{name:"employeeId"},{name:"user.userName"}] });

ext не будет его выводить, какое-нибудь решение для этого?

1 Ответ

1 голос
/ 24 апреля 2011

Используйте свойство 'mapping' для полей в вашем магазине, чтобы переназначить "глубокие" значения на простые имена, на которые ComboBox может затем ссылаться:

new Ext.form.ComboBox({
    fieldLabel: 'Manager',
    hiddenName: 'employeeId',
    store: new Ext.data.JsonStore({
        root: 'root',
        url: '/some_data',
        method: 'POST',
        fields: [
            {name: 'employeeId'},
            {name: 'userName', mapping: 'user.userName'}
        ]
    }),
    displayField: 'userName',
    valueField: 'employeeId'
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...