содержимое вкладки extjs не будет отображаться - PullRequest
2 голосов
/ 14 декабря 2011

В приведенном ниже коде, если я установлю activeTab на 0, содержимое / viewer / welcome отобразится, как и ожидалось.Если я установлю activeTab на 1 (как показано ниже), вторая вкладка активируется при загрузке, но когда я нажимаю на первую вкладку, содержимое никогда не отображается.Я вижу, как он загружает содержимое для вкладки ДО того, как я нажму на вкладку (если я установил autoLoad: false, он вообще не загружается), но даже если он загружен, он не отображается.

{
    xtype: 'tabpanel',
    activeTab: 1,
    items: [
        {
            xtype: 'panel',
            loader: {
                url: '/viewer/welcome/',
                renderer: 'html',
                autoLoad: true
            },
            layout: {
                type: 'fit'
            },
            title: 'Welcome'
        },
                    ...
       }

Почему содержимое вкладки фактически не отображается при активации вкладки?Почему это работает, если эта вкладка является активной вкладкой при загрузке, но не когда она активирована иначе?

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

{
    xtype: 'tabpanel',
    activeTab: 1,
    items: [
        {
            xtype: 'panel',
            loader: {
                url: '/viewer/welcome/',
                renderer: 'html',
                autoLoad: false
            },
            layout: {
                type: 'fit'
            },
            title: 'Welcome',
            listeners: {
                activate: function(me, opts) {
                     me.getLoader().load();
                }
            }
        },
                    ...
       }

Я просто не понимаю, почему вкладки не управляют этим содержимым как часть вкладки .....

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

Я думаю, что проблема здесь в том, что вы указали - вкладки не управляют контентом. Причина, по которой они не управляют этим должным образом, заключается в том, что содержимое HTML, возвращаемое из загрузчика, заключается просто в том, что некоторые HTML не являются компонентом ExtJS. Можно утверждать, что ExtJS «должен» управлять содержимым, которое он загрузил, но документы ссылаются на обратное: http://docs.sencha.com/ext-js/4-0/#!/api/Ext.Component-cfg-html Возможно, стоит подать ошибку об этом.

Также я заметил, что на панели приветствия указан макет подгонки. Поскольку у вас нет других элементов, содержащихся на этой панели, вам, вероятно, не нужен этот параметр - кстати, он может (или не может) улучшить способ обработки загруженного фрагмента HTML.

Удачи.

0 голосов
/ 10 августа 2016

Я обнаружил, что в ExtJS 5.1 использование ссылочного имени не работает.Пришлось положить в itemId

...