0

我的 ViewPort 中有一个 TabPanel,有 4 个选项卡;是否可以保留选项卡本身(要点击的“按钮”),但如果不可见则删除/创建内容/dom?

我正在寻找类似 tab.removeContent() 和 tab.createContent() 的东西,我猜......

我试过了:

activeitemchange: function(component, value, oldValue, eOpts) {
    Ext.Viewport.remove(oldValue, true);
}

这似乎什么也没做......

这将删除所有内容:

activeitemchange: function(component, value, oldValue, eOpts) {
    Ext.Viewport.remove(Ext.Viewport.getActiveItem(), true);
}

我得到了删除部分的工作:

oldValue.removeInnerAt(0);

但与之相反的是什么,即如何设置标签的内容?

var myContent = Ext.create('MyApp.view.MyView');
// and now?
4

2 回答 2

1

Sencha 高级论坛经理 Mitchell Simoens 对此进行了扩展。可以在他的github页面上找到:Optimized tab (git)

选项卡将被删除并缓存。

编辑: 在您目前的情况下,您正在扩展Ux.tab.OptimizedTab,这是错误的。该库仅对某些方法进行了一些更改Ext.tab.Panel(该库也没有扩展Ext.tab.Panel。在 Mitchell 给出的示例中,您可以看到他正在扩展Ext.tab.Panel并设置 defaultType on optimized-tab

Ext.define('MyApp.view.Main', {
    extend : 'Ext.tab.Panel',
    xtype  : 'main',

    requires : [
        'Ext.TitleBar',
        'Ext.Video',
        'Ux.tab.OptimizedTab'
    ],

    config: {
        tabBarPosition : 'bottom',
        defaultType    : 'optimized-tab',
        items : {
            ...
        }
    }
}

请注意,您更改了 lib 类名,在我看来,这是一种不尊重,最重要的是,您给它起了错误的名称并将其放在错误的文件夹中。(你给的名字是Crossfit.view.OptimizedTab,但它根本不是一个视图..)

我想对你的应用程序的良好架构进行一些赞美,我没有看到很多人了解 Sencha Touch 架构。但是你,米切尔和我是其中的一部分:)

于 2013-03-28T15:59:41.583 回答
0

我最初在使用这个组件时也遇到了问题,你会注意到这里的关键是,如果你的标签面板中有 3 个项目,每个项目都必须有 xtype 'optimized-tab',并且在它们里面你有你的实际项目。

例如:

items: [
        {
            xtype: 'optimized-tab',
            title: 'Tab 1',
            iconCls: 'info',
            baseCls: 'myBtn',
            cls: 'myBtn',
            html: 'Tab 1',
            items: [
                {
                    xtype: 'component',
                    baseCls: 'myBtn',
                    cls: 'myBtn',
                    ui: 'light'
                }
            ]
        },

要测试它是否实际工作,请将其粘贴到控制台中以查找 DOM 项的数量:

document.getElementsByTagName("*").length

如果您的第一个选项卡是空的,您应该会看到大约 50 个项目,如果您有地图,您应该会看到大约 200 个等。如果优化的选项卡不起作用,您可能会在 DOM 中看到大约 400 个项目。

如果它正在工作,您可能会看到优化的选项卡在动画完成之前过早地删除了项目。所以你可以稍微修改它以删除之后的项目。

您也可以参考此链接了解更多信息:http ://www.sencha.com/forum/archive/index.php/t-207907.html?s=24386d2ced82d0625b8199247e0f5c64

:-)

于 2013-06-17T20:26:29.950 回答