Наследование в extjs. Javascript и объекты.
Бывает так, что при разработке интерфейса на extjs, необходимо иметь на странице несколько элементов, со схожими характеристиками. В extjs есть такая штука как config, куда можно записать настройки по-умолчанию многих элементов. Но можно пойти и классическим путем. Так как весь extjs - объектная библиотека, то можно созать свои компоненты, унаследовав их от стандартных. Хотя лично я не рекомендовал бы этим увлекаться. Потому, как на мой взхгляд главное в броузерных приложениях не читаемость кода, а его размер. Но в любом случае знать полезно, как наследовать свои компоненты от стандартных в extjs. Сейчас мы дешево и сердито создадим свой пользовательский класс формы.
SuperForm = Ext.extend(Ext.form.FormPanel({
// пишем свои настройки
labelWidth: 147
,labelAlign:'right'
,initComponent:function() {
// а сюда пишем функционал для инициализации
Ext.apply(this, {
items:[{},{},{}]
,buttons:[{},{}]
});
// не забываем вызвать инициализацию родительского класса
SuperForm.superclass.initComponent.apply(this, arguments);
}
// А вот так перекрываем евенты:
,onRender:function() {
// сюда пишем свою отрисовку
// и снова не затыть вызвать ролительский метод
SuperForm.superclass.onRender.apply(this, arguments);
}
});
// И чтобы extjs смог включить ваш класс в свой репозитарий, придумаем ему xtype
// и зарегестрируем его в extjs
Ext.reg(’mysuuperform’, SuperForm)
Comments
Leave a Reply