2009-09-04 72 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的內置應用程序中的一些例子。例如,任務應用程序可以取消刪除「特殊」項目的功能。