Исчезает карта TabPanel на setActiveItem? - PullRequest
1 голос
/ 15 июля 2011

EDIT

У меня есть окно просмотра, которое расширяет TabPanel. В нем я установил одну из кнопок tabBar для загрузки другой TabPanel под названием subTabPanel. myApp.views.viewport.setActiveItem(index, options) работает просто отлично. Но myApp.views.subTabPanel.setActiveItem(index, options) загружает соответствующую карту панели только на долю секунды, прежде чем она исчезнет.

Странно, но это прекрасно работает, чтобы сделать этот вызов из элемента списка subTabPanel: this.ownerCt.setActiveItem(index, options) Однако я хочу этого избежать, поскольку я хочу, чтобы такие действия выполнялись внутри контроллеров, чтобы они соответствовали MVC.

Есть ли какие-либо мысли о том, почему карта исчезает при вызове из контроллера, а не при вызове из содержащей SubTabPanel?

(Рассматриваемая карта subTabPanel является расширением Ext.Carousel.)



UPDATE

Похоже, что и subTabPanel, и его карусель создаются как-то дважды, так что это может быть большой частью проблемы ...

1 Ответ

1 голос
/ 16 июля 2011

Ответ в этом случае состоял в том, чтобы предотвратить дублирование создания subTabPanel и его карусели.

Окно просмотра теперь выглядит так:

myApp.views.Viewport = Ext.extend(Ext.TabPanel, {
    fullscreen: true,
    layout: 'card',
    cardSwitchAnimation: 'slide',
    listeners: {
        beforecardswitch: function(cnt, newCard, oldCard, index, animated) {
            //alert('switching cards...');
        }
    },
    tabBar: {
        ui: 'blue',
        dock: 'bottom',
        layout: { pack: 'center' }
    },
    items: [],
    initComponent: function() {
        //put instances of cards into myApp.views namespace
        Ext.apply(myApp.views, {
            subTabPanel: new myApp.views.SubTabPanel(),
            tab2: new myApp.views.Tab2(),
            tab3: new myApp.views.Tab3(),
        });
        //put instances of cards into viewport
        Ext.apply(this, {
            items: [
                myApp.views.productList,
                myApp.views.tab2,
                myApp.views.tab3
            ]
        });
        myApp.views.Viewport.superclass.initComponent.apply(this, arguments);
    }
});

И с тех пор я удалил дублирующее создание этих элементов TabPanel из свойства items: и переместил их специфичные для tabBar свойства в классы представления SubTabPanel, Tab2 и Tab3 (каждый из которых является расширением либо Ext.TabPanel, либо Ext.Panel).

...