В itemTpl для моего DataView у меня есть следующая строка:
<div class="btn" id="colorbtn" uniqueId="{id}">{[this.getColorButton(values)]}</div>
В моем слушателе у меня есть следующее:
listeners : {
element : 'element',
delegate : '#colorbtn',
tap : function(item, idx, el, evt) {
// gets the item you tapped
btnId = el.getAttribute('uniqueId');
//Ext.getCmp('colorbtn').setText('New Value');
alert("hello "+btnId );
}
}
Как вы можете видеть, я пытаюсь получить кнопку с Ext.getCmp
и установить новый текст, но это вызывает ошибку Uncaught TypeError: Cannot read property 'setText' of undefined
. Есть ли способ достичь того, что мне нужно?
Оберните переменную элемента, возвращенную в вашем событии с помощью Ext.get(), это приведет к извлечению объекта Ext.dom.Element. Затем вы можете использовать доступные методы для Ext.dom.Element.
Пример:
Ext.get(el).setHtml('New Value') ;
Примечание. Автоматически исправляется, если объект был воссоздан с тем же идентификатором через AJAX или DOM.
Uncaught TypeError: undefined is not a function
. Кажется, подходящим будетel.setHtml
но это выдает ту же ошибку.