0

我在 Sencha Touch 2.2 中使用 Ext.Panel 时遇到了一些麻烦。一开始它可以工作,但是在构建之后它不能被关闭,尽管 hideOnMaskTap 是真的。

这是我的代码:

MinPanel.js

Ext.define('MinimalPanelExample.view.MinPanel', {
    extend: 'Ext.Panel',

    requires: [
        'Ext.dataview.List'
    ],

    config: {
        id: 'minPanel',
        width: '320px',
        height: '480px',
        modal: true,
        hideOnMaskTap: true,

        html: 'minimal panel',

        items: [
            {
                xtype: 'list',
                width: '100%',
                height: '100%'
            }
        ]
    }
});

在Main.js中添加它:

var minPanel = Ext.create('MinimalPanelExample.view.MinPanel');

[...]
items: {
    docked: 'top',
    xtype: 'titlebar',
    title: 'Welcome to Sencha Touch 2',

    items: [
        {
            xtype: 'button',
            text: 'Button',
            listeners: {
                tap: function(button) {
                    minPanel.showBy(button);
                }
            }
        }
    ],
},

奇怪的是,如果我运行构建的包,面板内的列表甚至不会显示,它只显示 html: 'minimal panel'。不过,Javascript 控制台中没有警告。

关于为什么会发生这种情况的任何想法?
另外,如果我首先创建/访问面板的方式是错误的,请随时告诉我。

4

1 回答 1

0

弄清楚了。您不能只在主视图文件之上进行 Ext.create,它必须位于 Ext.define 块中的某个位置。如果我在初始化侦听器中创建 MinPanel,然后在用户按下按钮时通过 Ext.getCmp('minPanel') 获取它,它就会起作用。

于 2013-06-14T11:58:45.763 回答