2009-09-04 75 views
1

对于我的掌上预应用程序,我有一个动态生成的列表(从SQLite中提取数据,加载到模型中,进行绑定)。这工作正常,但现在我需要添加一个开/关切换到每个动态生成的项目。在模板中包含切换开关,但我无法正确分配小部件功能。我试图绑定场景中的小部件,但目前还没有运气。如何在动态呈现列表中创建切换按钮

那么有谁知道任何webOS教程(或有例子)如何绑定动态列表中的小部件?

回答

0

得到了一个答案的Palm开发的自己:

如果你使用一个切换按钮。价值属性来设置它的状态,你不叫setupWidget的切换按钮在所有。相反,将.value属性绑定到每个列表项模型。下面是步骤:

1.在列表item.html模板:

<div class='palm-row'> 
    <div class='palm-row-wrapper'> 
     <div x-mojo-element="ToggleButton"></div> 
     #{title} 
    </div> 
</div> 

2.在列表assistant.js设置功能(注意,我使用jQuery)

Mojo.Event.listen(jQuery("#my-list").get(0), Mojo.Event.propertyChange, this.listPropertyChangeHandler.bind(this)); 

3.在listPropertyChangeHandler

ListAssistant.prototype.listPropertyChangeHandler = function(event){ 
    var newValue = event.model.value; 
} 
0

它并不优雅,但一种方法是使用列表助手的onItemRendered属性。

指定的函数传递列表窗口小部件,项目模型和项目节点。在这个处理程序中,您可以在项目节点中找到您的切换小部件,并附加您的功能。

事情是这样的:

onItemRendered: function(listWidget, itemModel, itemNode){ 
    var item = itemNode.select('div.mywidget').first(); 
    Mojo.Event.listen(item, Mojo.Event.tap, this.handleTap.bind(this)); 
}.bind(this) 

有如何在源代码中使用onItemRendered的内置应用程序中的一些例子。例如,任务应用程序可以取消删除“特殊”项目的功能。