Есть ли способ повторно сделать флажок в ext js? - PullRequest
0 голосов
/ 03 апреля 2020

у меня есть следующий код

    extend: 'Ext.container.Viewport',
    initComponent: function () {
        var me = this;
        me.items = [
            {
                xtype: 'checkbox',
                fieldLabel: 'RPTest',
                itemId:'chk1'
            },
            {
                xtype: 'button',
                text: 'test',
                handler: function () {
                    me.chk1.setBoxLabel(me.chk1.fieldLabel);
                    me.chk1.boxLabelAlign = 'before';

                    me.chk1.setFieldLabel('');
                }
            }
        ];
        me.callParent(arguments);
        me.chk1 = me.down('#chk1');
    }
})

я хочу обновить boxLabelAlign свойство всякий раз, когда значения свойств кнопки щелчка пользователя изменяются, но DOM не обновляется, я пробовал updateLayout () флажка, но это не работает. так есть ли решение этой проблемы? или есть ли способ обновить DOM ??

1 Ответ

0 голосов
/ 03 апреля 2020

Вы должны использовать метод setConfig() для назначения нового свойства boxLabelAlign вместо непосредственного присвоения значения. Вот как:

var checkbox = Ext.create({
    xtype: 'checkbox',
    boxLabelAlign: 'after',
    boxLabel: 'ltest'
})

var button = Ext.create({
    xtype: 'button',
    text: 'CLICK ME',
    handler: function () {
        checkbox.setConfig({
            boxLabelAlign: 'before'
        })
    }
})

Ext.create('Ext.panel.Panel', {
    title: 'Setting label align',
    items: [
        checkbox,
        button
    ],
    renderTo: Ext.getBody()
});

Вы можете изменить initialConfigs элемента Ext js, используя метод element.setConfig({...})

...