對於我的掌上預應用程序,我有一個動態生成的列表(從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的內置應用程序中的一些例子。例如,任務應用程序可以取消刪除「特殊」項目的功能。