如何在Enyo中显示/隐藏图像?

时间:2011-07-11 07:09:02

标签: webos enyo

我正在使用HP webOS 3.0和Enyo框架。

我有一个简单的问题,即如何在点击按钮时显示和隐藏图像。我有2张图片,我想点击一个按钮显示图像,然后点击另一个按钮隐藏。

我在一个视图上有两个名为左窗格和右窗格的窗格。 我在左窗格中有大约10个项目。

在每个项目上,单击右侧窗格上的相应视图。

我正在使用以下代码。

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

现在我想知道如何在包含左窗格和右窗格的主视图中访问控件的属性。

例如, 我想在右窗格中显示的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 :(得分:0)

使用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();
            }