Я создали пользовательский ExtJS путем расширения Ext.container.Container
содержащих элементы управления, как radiofield
, combo
и dataview
и назвал его alias
конфигурации, как widget.CustomerDetail
.xtype и Itemid свойство, отсутствующее в пользовательском компоненте ExtJS
В фактическом представлении я использую этот компонент, определяя его в массиве items
следующим образом.
{
xtype: 'CustomerDetail',
itemId: 'customerDetail',
customerId: '<some id>', //this is custom attribute that I access in CustomerDetail's constructor.
listeners: {
'customerDataChanged': function(sender, eOpts) {
//This event is fired from CustomerDetail's components' change events
//by this.fireEvent("customerDataChanged", obj, eOpts);
//Do something like enabling Parent form's Save button.
}
}
}
Но я не в состоянии запросить этот пользовательский компонент в его родительском виде (форма, которая использует его) с помощью this.getComponent('<parent_form_itemId').getComponent('customerDetail')
.
в то время как, если я просто проверить this.getComponent('<parent_form_itemId')
, она имеет вид весь объект, а его items
массив также имеет CustomerDetail
компонент, но удивительно CustomerDetail
сек объект не имеет xtype
или itemId
присутствует в нем.
Что здесь не так?
Как я уже сказал, свойства 'xtype' и' itemId' сами не присутствовали в объекте компонента. И странно, это связано с использованием метода 'constructor' в' CustomerDetail', я удалил его, а itemId и xtype оба превратились в объект. Все еще не понимая, почему это произошло. – Kushal