对于我的掌上预应用程序,我有一个动态生成的列表(从SQLite中提取数据,加载到模型中,进行绑定)。这工作正常,但现在我需要添加一个开/关切换到每个动态生成的项目。在模板中包含切换开关,但我无法正确分配小部件功能。我试图绑定场景中的小部件,但目前还没有运气。如何在动态呈现列表中创建切换按钮
那么有谁知道任何webOS教程(或有例子)如何绑定动态列表中的小部件?
对于我的掌上预应用程序,我有一个动态生成的列表(从SQLite中提取数据,加载到模型中,进行绑定)。这工作正常,但现在我需要添加一个开/关切换到每个动态生成的项目。在模板中包含切换开关,但我无法正确分配小部件功能。我试图绑定场景中的小部件,但目前还没有运气。如何在动态呈现列表中创建切换按钮
那么有谁知道任何webOS教程(或有例子)如何绑定动态列表中的小部件?
得到了一个答案的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;
}
它并不优雅,但一种方法是使用列表助手的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的内置应用程序中的一些例子。例如,任务应用程序可以取消删除“特殊”项目的功能。