1

私のpalmpreアプリには、動的に生成されたリストがあります(SQLiteからデータをプルし、モデルにロードし、バインドします)。これは正常に機能しますが、動的に生成された各アイテムにオン/オフの切り替えを追加する必要があります。テンプレートにトグルスイッチを含めることはできますが、ウィジェット機能を適切に割り当てることができません。シーンでウィジェットをバインドしようとしていますが、今のところ運がありません。

では、動的リスト内でウィジェットをバインドする方法のwebOSチュートリアル(または例がある)を知っている人はいますか?

4

2 に答える 2

0

エレガントではありませんが、これを行う1つの方法は、リストアシスタントの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を使用する方法の例がいくつかあります。たとえば、タスクアプリは、「特別な」アイテムを削除する機能をキャンセルするためにこれを行います。

于 2009-09-18T02:45:27.493 に答える
0

Palm Dev自身から回答を得ました:

トグルボタンの.valueプロパティを使用して状態を設定する場合、トグルボタンでsetupWidgetを呼び出す必要はありません。代わりに、.valueプロパティを各リストアイテムモデルにバインドします。手順は次のとおりです。

1. list-item.htmlテンプレート内:

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

2. list-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;
}
于 2009-09-18T14:06:57.497 に答える