Ну, в моих настройках у меня есть (динамически) созданный контейнер, этот контейнер отображает данные из хранилища. Однако одним из компонентов данных является список (hasMany
ассоциация).
Это hasMany
, кажется, не загружается для магазина? Модель и магазин:
Ext.define('myApp.model.Entry', {
extend: 'myApp.model.Base',
fields:
[{
name: 'id',
unique: true,
}, {
name: 'event',
type: 'int',
critical: true,
}, {
name: 'team',
type: 'string',
defaultValue: null,
allowNull: true,
}, {
name: 'section',
type: 'string',
defaultValue: null,
allowNull: true,
}, {
name: 'user',
type: 'string',
defaultValue: null,
allowNull: true,
}],
hasMany: {
model: 'myApp.model.TeamMember',
name: 'teammembers',
}
});
Ext.define('myApp.model.TeamMember', {
extend: 'myApp.model.Base',
fields: [{
name: 'name',
type: 'string',
},
],
});
Данные загружаются через хранилище из «памяти»:
Ext.define('myApp.store.Entry', {
extend: 'myApp.store.FindableStore',
storeId: 'Entry',
alias: 'store.entry',
model: 'myApp.model.Entry',
data: {
items: [{
event: 3,
team: 'bas',
section: 'A',
user: 'Bas',
teammembers: [{
name: 'Bas',
}, {
name: 'Paul',
}],
}
},
proxy: {
type: 'memory',
reader: {
type: 'json',
rootProperty: 'items'
}
}
});
И он используется в следующем фрагменте:
{
xtype: 'container',
layout: {
type: 'vbox',
align: 'stretch'
},
//height: 100,
items: [],
listeners: {
painted: function (container) {
const row = container.up('gridrow');
const record = row.getRecord();
container.removeAll(true, true);
const teammembers = record.getAssociatedData();
console.log(teammembers);
debugger;
container.add(Ext.create({
xtype: 'list',
}));
container.doLayout();
}
},
}
Проблема в том, что getAssociatedData
возвращает пустой словарь, по-видимому, данные загружены неправильно?