Extreact 6 флажок "проверено" значение предотвращает истину

Играю с Extreact, и у меня есть флажок на моей странице, который я хочу контролировать его проверенное состояние. Например, я хочу установить проверенное значение в моем состоянии и иметь возможность проверять или снимать этот ввод, не нажимая на него как на пользователя.

Проблема в том, что CheckboxField только имеет checked опора, которая относится к начальному состоянию, так что это довольно бесполезно впоследствии.

1 ответ

Решение

Из-за коробки невозможно предотвратить изменение состояния щелчками, но это довольно легко сделать с помощью переопределения. Скрипка

Ext.define(null, {
    override: 'Ext.field.Checkbox',

    updateReadOnly: function (value, oldValue) {
        this.callParent([value, oldValue]);
        this.inputElement.dom.onclick = value ? function () {
            return false;
        } : null;
    }
})

Ext.application({
    name: 'Fiddle',

    launch: function () {
        Ext.Viewport.add({
            xtype: 'container',
            items: [{
                id: 'foo',
                xtype: 'checkbox',
                readOnly: true
            }, {
                xtype: 'button',
                text: 'On',
                handler: function () {
                    Ext.getCmp('foo').check();
                }
            }, {
                xtype: 'button',
                text: 'Off',
                handler: function () {
                    Ext.getCmp('foo').uncheck();
                }
            }]
        });
    }
});
Другие вопросы по тегам