Как показать / скрыть изображения в Enyo? - PullRequest
2 голосов
/ 11 июля 2011

Я использую HP webOS 3.0 и платформу Enyo.

У меня простой вопрос: как я могу показать и скрыть изображения одним нажатием кнопки.У меня есть 2 изображения, и я хочу показывать изображения по нажатию одной кнопки и скрывать по нажатию другой кнопки.

У меня есть две панели, называемые левой панелью и правой панелью в одном представлении.У меня есть около 10 элементов на левой панели.

На каждом элементе щелкает соответствующий вид, который вызывается на правой панели.

Я делаю это со следующим кодом.

   showTaskView: function(){
      this.$.rightPane.selectViewByName("taskView");
   },

Теперь я хочу узнать, как получить доступ к свойству элемента управления в главном представлении, содержащем как левую, так и правую панели.

Например, я хочу показать / скрыть изображение в представлении задач, отображаемом в правой панели нащелчок по кнопке, которая не находится ни на левой панели, ни на правой панели, но находится в той части заголовка представления, которая содержит левую и правую панели.

Невозможно получить доступ к методу image.setSrc элемента управления изосновной вид.Я пробовал это со следующим кодом.

editTask: function() {
   this.$.task.image.setSrc("images/image2.jpg");
}

и

editTask: function() {
   this.$.image.setSrc("images/image2.jpg");
}

Это дает мне следующую ошибку:

Cannot read property 'setSrc' of undefined

1 Ответ

0 голосов
/ 22 июля 2011

С VirtualList ваш хеш будет ссылаться только на текущую «выбранную» строку. «selected» - строка, получающая событие, или строка, явно выбранная с использованием prepareRow (). Если вы хотите изменить каждую строку, вы должны установить свойство и вызвать refresh () в списке, чтобы вызвать его повторную визуализацию.

Ниже должно работать (я думаю ...)

setupRow: function(inSender, inIndex) {
                 var row = this.data[inIndex];
                 if (row) {
                    this.$.caption1.setContent("Greet a " + row.task + ":");
                    this.$.star.setSrc("images/grey-star.png");
                    if(this.hideStart) this.$.star.hide();
                    this.$.caption2.setContent(row.assignto);
                    return true;
                 }
               },
               buttonClick: function(){
               this.hideStar = true;
               this.$.myVirtualList.refresh();
            }
...