extjs 如何在Ext.define中实现IF语句

gk7wooem  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(173)

我已经定义了我的面板类,我想根据特定的条件来定制它,如下面的伪代码所示:

if (foo =='A') {
   //Draw only button1
}
else {
   //Draw button1 & button2
}

但是,我不知道如何在MyPanel类中包含这个if语句。
第一个
我准备了一个小提琴的例子
先谢谢你了。

but5z9lq

but5z9lq1#

只需在“initComponent”方法中设置header属性,或使用将根据条件返回“header”配置对象的特殊方法。

Ext.define('MyApp.view.MyPanel', {
    extend: 'Ext.panel.Panel',
    xtype: 'mypanel',

    initComponent: function () {
        foo = this.foo;
        this.header = {
            items: [{
                xtype: 'button',
                text: 'button1'
            }, {
                xtype: 'button',
                text: 'button2',
                hidden: (foo === 'A'),
            }]
        };
        this.callParent(arguments);
    },
    width: 500,
    height: 200,
});

用特殊方法:

Ext.define('MyApp.view.MyPanel', {
    extend: 'Ext.panel.Panel',
    xtype: 'mypanel',

    initComponent: function () {
        this.header = this.getMyCustomHeader();
        this.callParent(arguments);
    },

    getMyCustomHeader: function () {
        var customHeader = {
            items: [{
                xtype: 'button',
                text: 'button1'
            }, {
                xtype: 'button',
                text: 'button2'
            }]
        }
        if (this.foo === 'A') {
            customHeader = {
                items: [{
                    xtype: 'button',
                    text: 'button1'
                }]
            }
        }
        return customHeader;
    },
    width: 500,
    height: 200
});

相关问题