如何根据初始配置设置属性?

时间:2015-11-07 16:22:17

标签: javascript extjs extjs5

我一直在寻找这么久,我找不到具体的答案。让我们说我从面板扩展控制如下:

Ext.define('MyApp.view.admin.User',{
extend: 'Ext.panel.Panel',
config: {
    canAdd: false,
    canDelete: false,
    canEdit: false
},
constructor: function(config){
    this.initConfig(config);
    this.callParent(arguments);
},
xtype: 'user',
requires: [
    'MyApp.view.admin.UsersGrid',
    'MyApp.view.admin.UserModel',
    'MyApp.view.admin.UserController',
    'MyApp.model.User'
],
viewModel: {
    type: 'user'
},
controller: 'user',
frame: true,
layout: {
    type: 'vbox',
    align: 'stretch'
},
items: [
    {
        xtype: 'users-grid',
        flex: 1
    }
],
dockedItems: [
    {
        xtype: 'toolbar',
        dock: 'top',
        items: [
            {
                xtype: 'button',
                text: 'Add',
                glyph: MyApp.util.Glyphs.getGlyph('add'),
                hidden: **[config.canAdd]**
                listeners: {
                    click: 'onAdd'
                }
            },
            {
                xtype: 'button',
                bind: {
                    disabled: '{!usersGrid.selection}'
                },
                text: 'Edit',
                hidden: **[config.canEdit]**
                hidden: this.setElementConfiguration,
                glyph: Mofeg.util.Glyphs.getGlyph('edit'),
                listeners: {
                    click: 'onEdit'
                }
            },
            {
                xtype: 'button',
                bind: {
                    disabled: '{!usersGrid.selection}'
                },
                text: 'Eliminar',
                glyph: MyApp.util.Glyphs.getGlyph('destroy'),
                listeners: {
                    click: 'onDelete'
                }
            }
        ]
    }
]});

我想根据初始配置应用按钮的隐藏属性,我该如何完成?

1 个答案:

答案 0 :(得分:1)

您可以撰写initComponent

initComponent: function () {
    var me = this,
        editButton = Ext.ComponentQuery.query('button[itemId=edit]')[0],
        canEdit = me.getCanEdit();

    editButton.setHidden(canEdit);

    me.callParent(arguments);
}