ExtJS: Как изменить компонент labelStyle внутри функции? - PullRequest
0 голосов
/ 24 сентября 2018

tl / dr : Нет setter для labelStyle.Так как я могу изменить его значение для функции?

У меня есть afterrender слушатель, и я хочу установить цвет fieldLabel в белый цвет и установить emptyText вместо fieldLabel и пока что мне нужно поменять fieldLabel цвет на белый !Поэтому мне нужно получить доступ к свойству lableStyle текущего компонента.Я пытался зайти в config, но не смог его найти.Также попытался использовать Ext.apply() для установки свойства для связанного комбо, но это тоже не работает.

Как мне достичь своей цели здесь?

//Related component `listeners`;
listeners   : {
        afterrender: 'removeLabel',
        focusenter: 'createLabel'
    },

//Related function;
removeLabel: function () {
        let formComponent = ['foocombobox', 'bartextfield', 'zetdatefield'];

        Ext.each(formComponent, function (eachComp) {
            let currentComp = Ext.ComponentQuery.query(eachComp)[0];

            if (currentComp.value === '')) {
                let currentLabel = currentComp.fieldLabel;
                currentComp.setEmptyText(currentLabel);

                //This can not work because of I've reach constructor config. So how can I reach?
                //currentComp.labelStyle  = "color:red;";

                //I tried to manipulate through Ext.apply but did not effect;
                //Ext.apply(currentComp, {labelStyle: "color:red;"});


            }
        });
    }, 

1 Ответ

0 голосов
/ 24 сентября 2018

Я получаю dom-узел по currentComp.labelTextEl.dom, а затем запускаю setAttribute функцию:

FIDDLE

if (!currentComp.value) {
    urrentComp.setEmptyText(currentComp.fieldLabel);
    currentComp.labelTextEl.dom.setAttribute('style', 'color:white;'); 
}
...