У меня есть этот JSon данные:ExtJS 4.2 - Как сопоставить массив с полем модели и динамически отображать столбец сетки?
{
id: 1,
name: 'something',
description: 'somethingsomething',
customers: [{
id: 1,
username: 'cust1'
}, {
id: 2,
username: 'cust2'
}]
}
В то время как у меня нет никаких проблем, отображающие первые три поля на GridPanel, я тем не менее есть проблема извлечения объекта массива для customers
поля. Моя модель выглядит следующим образом:
fields: [
'id', {
name: 'name',
sortType: Ext.data.SortTypes.asUCString
},
'permanent', {
name: 'description',
Type: Ext.data.SortTypes.asUCString
}, {
name: 'customers',
Type: Ext.data.SortTypes.asUCString
}, {
name: 'username',
Type: Ext.data.SortTypes.asUCString,
mapping: 'customers[0].username'
}
]
Когда я пытаюсь получить доступ к customers[0].username
, он извлекает только те, по этому указанному индексу. Удаление номера индекса возвращает undefined
, так как я предполагаю, что он ищет, с какого индекса вернуться. Как правильно получить все customers: []
и отображать его в моей сетке, где она структурирована как:
{
xtype: 'gridpanel',
store: oStore,
viewConfig: {
loadMask: false,
enableTextSelection: true
},
hideHeaders: false,
bodyBorder: true,
columns: [{
text: 'Customer',
dataIndex: 'username',
flex: 1
}, {
header: '',
xtype: 'actioncolumn',
itemId: 'remove-player-btn',
width: 50,
sortable: false,
resizable: false,
menuDisabled: true,
items: [{
icon: 'resources/img/x.png',
tooltip: 'Remove Player',
scope: oMe
}],
editor: {
xtype: 'text',
name: 'deleteRow'
}
}]
}
Это сработало! Тем не менее, я не сопоставлял его с помощью 'model.data', а' model.raw', поскольку прежний не был определен. – ralphcarlo