在 Sencha Architect 中将 Ext.Menu 添加到视口

Posted

技术标签:

【中文标题】在 Sencha Architect 中将 Ext.Menu 添加到视口【英文标题】:Adding Ext.Menu to the viewport in Sencha Architect 【发布时间】:2014-06-10 09:53:57 【问题描述】:

我正在 Sencha Architect 3 中制作一个基本应用程序,并尝试添加一个触摸番茄样式的菜单按钮http://docs.sencha.com/touch/2.3.0/touch-build/examples/touchtomatoes/index.html

在 Touch Tomatoes 项目中添加菜单的代码是在 Sencha Touch 项目的 app.js 文件中添加的,如下所示,但我无法弄清楚如何在 Sencha Architect 中执行此操作,因为它说每次保存项目时都会覆盖 app.js 文件

Ext.应用程序( 名称:'TouchTomatoes',

    requires: ['Ext.device.Storage','Ext.Menu', 'TouchTomatoes.components.MenuButton'],
    controllers: ['TouchTomatoes.controller.Main'],
    views: ['TouchTomatoes.view.Main', 'TouchTomatoes.view.WelcomeOverlay'],

    launch: function() 
        Ext.getBody().removeCls('loading');
        Ext.create('TouchTomatoes.view.Main');

        if (Ext.device.Storage.getItem('isFirstTime') !== "false") 
            Ext.device.Storage.setItem('isFirstTime', false);

            var overlay = Ext.create('TouchTomatoes.view.WelcomeOverlay');
            Ext.Viewport.add(overlay);
            overlay.show();
        

        var menu = Ext.create("Ext.Menu", 
            defaults: 
                xtype: "menubutton"
            ,
            width: '80%',
            scrollable: 'vertical',
            items: [
                
                    text: 'Opening',
                    iconCls: 'time',
                    menu:"opening"
                ,
                
                    text: 'Theatres',
                    iconCls: 'locate',
                    menu: "theatres"
                ,
                
                    text: 'Upcoming',
                    iconCls: 'team',
                    menu:"upcoming"
                ,
                
                    text: 'Top',
                    iconCls: 'bank',
                    menu:'top'
                ,
                
                    text: 'Search',
                    iconCls: 'search',
                    menu:"search"
                
            ]
        );

        Ext.Viewport.setMenu(menu, 
            side: 'left',
            reveal: true
        );
    
);

【问题讨论】:

【参考方案1】:

您已经定义了启动,因此只需将您的两个语句粘贴到架构师中即可。

在建筑师中,

在检查器中点击Application 单击配置窗格中的 launch 操作以在编辑器中显示它(或者,如果您没有定义启动,请单击配置窗格中启动旁边的 + 图标添加它。)

将您的代码粘贴到覆盖代码下方的编辑器中:

var menu = Ext.create("Ext.Menu", 
defaults: 
        xtype: "menubutton"
    ,
    width: '80%',
    scrollable: 'vertical',
    items: [
        
            text: 'Opening',
            iconCls: 'time',
            menu:"opening"
        ,
        
            text: 'Theatres',
            iconCls: 'locate',
            menu: "theatres"
        ,
        
            text: 'Upcoming',
            iconCls: 'team',
            menu:"upcoming"
        ,
        
            text: 'Top',
            iconCls: 'bank',
            menu:'top'
        ,
        
            text: 'Search',
            iconCls: 'search',
            menu:"search"
        
    ]
);

Ext.Viewport.setMenu(menu, 
    side: 'left',
    reveal: true
);

您最终会得到与上面列出的完全相同的代码,并且它不会被覆盖,因为它是应用配置的一部分。

请注意,由于您包含“菜单按钮”的 xtype,因此您必须在类级别创建一个按钮并为其指定“菜单按钮”的 userAlias,否则应用程序将大致抛出错误说明, "我无法使用 xtype.menubutton 创建小部件。"

【讨论】:

以上是关于在 Sencha Architect 中将 Ext.Menu 添加到视口的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sencha Architect 中动态设置 Ext.Img ->"src" 的值

无法使用 Sencha Architect 导航 CardLayout

iPhone Sencha Touch - 如何在 sencha touch 中将表格视图添加到拆分视图

如何在 Sencha EXT JS 中将我的标签设为超链接

在 Sencha touch 中将 HTML 和 javascript 文件添加到 Ext.Panel 的最佳方法

在 Sencha Architect 中扩展网格面板