Мое приложение растет за последний год или около того, и я, наконец, начал разделять общие компоненты, расширяя существующие. Я нашел, что это действительно полезно - увеличение скорости разработки и обслуживания. Моя проблема в том, что я не понял концепцию использования пользовательских параметров на своих компонентах и надеялся, что кто-то может предложить некоторую помощь в следующем примере. В частности, я, кажется, не быть в состоянии получить доступ к пользовательскому параметру (myCustomParam) внутри проксите, объявленные в функции InitComponent:Использование пользовательских атрибутов в компоненте ExtJS
MyEmployeeGrid = Ext.extend(Ext.grid.GridPanel, {
myCustomParam: "CompanyX",
initComponent:function() {
//Store Reader
var myReader = new Ext.data.JsonReader({
root : 'objectsToConvertToRecords',
idProperty: 'id',
fields : [
{name: 'id'},
{name: 'employee', allowBlank:false},
{name: 'department', allowBlank:false}
]
});
//Store Proxy
var dwrProxy = new Ext.ux.data.DwrProxy({
apiActionToHandlerMap : {
read : {
dwrFunction : EmployeeService.readCompanyEmployees,
getDwrArgsFunction: function(request, recordDataArray, oldRecordDataArray) {
return [myCustomParam];
}
}
}
});
//Setup Params for the grid
Ext.apply(this, {
store: new Ext.data.Store({
proxy: dwrProxy,
reader: myReader,
autoLoad : true,
autoSave: true
}),
columns: [{header: "Employee", dataIndex: 'employee'},
{header: "Department", dataIndex: 'department'}]
});
MyEmployeeGrid.superclass.initComponent.apply(this, arguments);
} // eo function initComponent
,onRender:function() {
MyEmployeeGrid.superclass.onRender.apply(this, arguments);
} // eo function onRender
});
Ext.reg('myemployeegrid', MyEmployeeGrid);
Привет Роб, спасибо за ваш пост. Означает ли это, что я не смог бы изменить myCustomParam при создании сетки - мне нужно создать экземпляр MyEmployeeGrid для каждой компании, поэтому изменяя myCustomParam при объявлении сетки – James
Привет, Джеймс, я немного изменил код, потому что это было неверно, объявление переменной не нужно «это» перед этим. Используя вышеизложенное, вы можете установить значение по умолчанию для переменной и переопределить ее с помощью настраиваемого во время инициализации вашего экземпляра.Надеюсь, это поможет, дайте мне знать –