Extjs 6 — Как использовать dataIndex в сетке для вложенных данных

#javascript #json #extjs #grid

#javascript #json #extjs #сетка

Вопрос:

Я создал здесь скрипку. Мой вопрос заключается в том, как назначить dataIndex для названия воздушного судна и столбца имени оператора.

https://fiddle.sencha.com/#view/editoramp;fiddle/2qs9

Я не хочу делать это таким образом

 {name: 'operator', type: 'auto'},
{name: 'operatorId', type: 'string', mapping:'operator.id'},
{name: 'operatorName', type: 'string', mapping:'operator.name'}
  

затем используйте operatorName в качестве dataIndex в сетке, потому что мои исходные данные еще более сложны с массивами и режимными вложенными объектами, так что это означало бы, что мне нужно сгладить всю структуру данных.

Ответ №1:

Вы можете использовать templatecolumn или средство визуализации в сетке, чтобы показать, что вам нужно.

Использование templatecolumn:

 {
        text: 'Aircraft Name',
        tpl: '{aircraft.name}',
        xtype: 'templatecolumn'
}
  

Использование средства визуализации:

 {
        text: 'Aircraft Name - Second Option',
        renderer: function (v, record) {
               return record.getAircraft() ? record.getAircraft().get('name') : null;
        }
}
  

Пример на скрипке:
https://fiddle.sencha.com/#view/editoramp;fiddle/2qsm

Комментарии:

1. Потрясающе. Спасибо: D