Extjs 4 MVC класс загрузки по имени виджета - PullRequest
3 голосов
/ 05 мая 2011

У меня есть виджет с именем AM.users.Tabs, где я расширяю tabPanel.Как загрузить эту tabPanel по имени виджета, чтобы я мог динамически добавлять к ней вкладки?Я могу установить id для него и затем использовать Ext.getCmp('id').add({...}), но я хотел бы знать, есть ли способ получить компонент без необходимости жестко кодировать идентификаторы, поскольку у меня настроены псевдонимы.

Ответы [ 2 ]

0 голосов
/ 07 октября 2011

Если вы хотите загрузить свой класс по имени виджета, вы можете использовать Ext.createWidget()

Например, если у вас tabPanel выглядит так:

Ext.define('AM.users.Tabs', {
    extend: 'Ext.tab.Panel',
    alias: 'widget.userstabs',
    ...
});

Вы можете назвать это так:

Ext.createWidget('userstabs', {
    ...
    ...
});
0 голосов
/ 06 мая 2011

Например, как вы получаете объект Component?

Если вы не хотите использовать Ext.getCmp, вы можете использовать новую систему запросов компонентов, которая позволяет запрашивать компоненты по id или xtype аналогично css. http://dev.sencha.com/deploy/ext-4.0.0/docs/api/Ext.ComponentQuery.html

вы также можете запросить родительский компонент для дочерних компонентов, используя ту же систему запросов:

parentPanel.query('myxtype')
...