Sencha Touch 2: изменить текст кнопки HTML в itemTpl

0

В 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. Есть ли способ достичь того, что мне нужно?

  • 0
    Почему вы используете Ext.getCmp ('colorBtn'), когда у вас уже есть ссылка на кнопку через el? Попробуйте el.setText («Новое значение»)
  • 0
    Я понятия не имею, почему это не произошло со мной. К сожалению, я получаю ошибку Uncaught TypeError: undefined is not a function . Кажется, подходящим будет el.setHtml но это выдает ту же ошибку.
Показать ещё 4 комментария
Теги:
extjs
sencha-touch
sencha-touch-2

1 ответ

1
Лучший ответ

Оберните переменную элемента, возвращенную в вашем событии с помощью Ext.get(), это приведет к извлечению объекта Ext.dom.Element. Затем вы можете использовать доступные методы для Ext.dom.Element.

Пример:

 Ext.get(el).setHtml('New Value') ;

Примечание. Автоматически исправляется, если объект был воссоздан с тем же идентификатором через AJAX или DOM.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню