Нет я хочу, чтобы в гриде городов был столбец в котором бы было указано наименование района к которому этот город относится. Причем в моделе данных города хранится только идентификатор этого района. Таким образом требуется как-то подгрузить по идентификатору района название этого района, чтобы оно отображалось в этом столбце.
Я предположил, что в сущностях ExtJS нужно создать две модели данных "Районы" и "Города", и задать между ними связь( association ), типа belongsTo (каждый город относится к одному району). Далее я создал очень простые store соответственно для городов и для районов:
Ext.define('Street.store.AreaStore', {
extend: 'Ext.data.Store',
storeId: 'AreaStore',
model: 'Street.model.AreaModel',
});
Ext.define('Street.store.TownStore', {
extend: 'Ext.data.Store',
storeId: 'TownStore',
model: 'Street.model.TownModel',
});
и соответственно указанный выше грид, но как в столбец грида подгрузить связанные данные до меня так и не доходит, уже пол дня на это убил...
скорей всего нужно использовать свойство "renderer" при инициализации колонки "Район" и в нем задать функцию, которая каким, то образом извлекет нужные данные. Что-то типа:
columns:[...
{ header: 'Район',
dataIndex: 'area_id',
renderer: function(value, meta, model) {
return model.getArea(function(area){
return area.get('name');
});
}
}
... ]
Но так не работает, печатает в столбце "function () {return this.constructor.apply (this, arguments);}". Вообщем ломаю голову...