2

在下面的代码中,如果我将 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();
                }
            }
        },
                    ...
       }

我只是不明白为什么标签不管理此内容作为标签的一部分.....

4

2 回答 2

1

我认为这里的问题是您所指出的 - 选项卡没有管理内容。他们没有正确管理它的原因是从加载器返回的 HTML 内容就是 - 一些 HTML,它不是 ExtJS 组件。ExtJS“应该”管理它已加载的内容是有争议的,但文档暗示相反:http ://docs.sencha.com/ext-js/4-0/#!/api/Ext.Component-cfg -html提交一个错误可能是值得的。

另外,我注意到您在欢迎面板上指定了合适的布局。由于该面板中没有其他项目,您可能不需要该设置 - 顺便说一下,它可能(或可能不会)改进加载的 html 片段的处理方式。

祝你好运。

于 2011-12-14T04:01:46.120 回答
0

我发现在 ExtJS 5.1 中使用引用名称不起作用。必须输入一个 itemId

于 2016-08-10T12:30:49.283 回答