首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Extjs 4:使用ux.center

Extjs 4:使用ux.center
EN

Stack Overflow用户
提问于 2012-09-05 23:12:46
回答 1查看 1.8K关注 0票数 0

我在使用定制布局ux.center时遇到了麻烦。我是做错了Ext.Loader还是Ext.require?Center.js文件位于/var/www/application/ux/layout/Center.js之下,该文件(app.js)位于/var/wwww/application/app.js之下。

代码语言:javascript
复制
Ext.Loader.setPath('Ext.ux', '/var/www/application/ux');
Ext.require('Ext.ux.layout.Center');
Ext.application({
    name: 'AM',
    appFolder: 'app',
    controllers: ['Users'],
    launch: function(){
            Ext.state.Manager.setProvider(Ext.create('Ext.state.CookieProvider'));
            Ext.create('Ext.container.Viewport', {
                    width: 1150,
                    height: 'auto',
                    autoScroll: 'true',
                    layout: 'anchor',
                    items:[{xtype: 'userpanel'},
                    {
                            xtype: 'panel',
                            width: 1150,
                            layout:'ux.center',
                            items:[{ 
                                    xtype: 'panel',
                                    width: 1150,
                                    widthRatio: .75,
                                    items: [{
                                            xtype: 'userbutton',
                                            action: '',
                                            text: 'Print'
                                    },
                                    {
                                            xtype: 'userbutton',
                                            action: '',
                                            text: 'Download'
                                    },
                                    {
                                            xtype: 'userbutton',
                                            action: 'chart',
                                            text: 'Chart!'
                                    }]
                            }]}]
            });
}});

感谢您给出的关于使这个布局工作的任何提示。

EN

回答 1

Stack Overflow用户

发布于 2012-09-06 15:23:45

您应该在extjs加载/var/www/application/ux/layout/Center.js脚本之后运行Ext.application方法。为此,只需使用Ext.onReady添加回调即可

代码语言:javascript
复制
Ext.Loader.setPath('Ext.ux', '/var/www/application/ux');
Ext.require('Ext.ux.layout.Center');

Ext.onReady(function () {
    Ext.application({ ... });
});

但是正确的方法是使用"requires“配置属性。

代码语言:javascript
复制
Ext.application({
    requires: ['Ext.ux.layout.Center'],
    name: 'AM',
    appFolder: 'app',        
    controllers: ['Users'],
    launch: function(){
            Ext.state.Manager.setProvider(Ext.create('Ext.state.CookieProvider'));
            Ext.create('Ext.container.Viewport', {
                    width: 1150,
                    height: 'auto',
                    autoScroll: 'true',
                    layout: 'anchor',
                    items:[{xtype: 'userpanel'},
                    {
                            xtype: 'panel',
                            width: 1150,
                            layout:'ux.center',
                            items:[{ 
                                    xtype: 'panel',
                                    width: 1150,
                                    widthRatio: .75,
                                    items: [{
                                            xtype: 'userbutton',
                                            action: '',
                                            text: 'Print'
                                    },
                                    {
                                            xtype: 'userbutton',
                                            action: '',
                                            text: 'Download'
                                    },
                                    {
                                            xtype: 'userbutton',
                                            action: 'chart',
                                            text: 'Chart!'
                                    }]
                            }]}]
            });
}});

此外,您还可以阅读以下材料http://docs.sencha.com/ext-js/4-1/#!/api/Ext.app.Application

您还可以为viewport创建自己的类,并将其放入appFolder/view/文件夹中。

代码语言:javascript
复制
Ext.define('AM.view.Viewport', {
    extend: 'Ext.view.Viewport',

    requires: ['Ext.ux.layout.Center'],

    width: 1150,
    height: 'auto',
    autoScroll: 'true',
    layout: 'anchor',

    initComponent: function () {
        this.items = [{
            xtype: 'userpanel'
        }, {
            xtype: 'panel',
            width: 1150,
            layout:'ux.center',
            items:[{ 
                xtype: 'panel',
                width: 1150,
                widthRatio: .75,
                items: [{
                    xtype: 'userbutton',
                    action: '',
                    text: 'Print'
                }, {
                    xtype: 'userbutton',
                    action: '',
                    text: 'Download'
                }, {
                    xtype: 'userbutton',
                    action: 'chart',
                    text: 'Chart!'
                }]
            }]
        }];
        this.callParent();
    }
});

并使用autoCreateViewport. Ext.app.Application配置属性。它将加载appFolder/view/Viewport.js脚本并将其用作viewport

代码语言:javascript
复制
Ext.application({
    name: 'AM',
    appFolder: **insert you app folder path here**, // in you case it will be 'application'       
    controllers: ['Users'],
    autoCreateViewport: true
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12291006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档