HTML5/Javascript で Windows 8 アプリを開発しています。DIV のスタックを使用してコンテンツを表示するカスタム コントロールを作成しました。各 DIV は を使用してレンダリングされますWinJS.Binding.Template
。セットアップは、次の質問の答えに近いです: WinJS.UI.ListView はリスト項目のコンテンツをカスタマイズしますか? .
バインディング データは次のようになります。
[
{
"title": "title name",
"allow_action": false
"action_type": "go"
},
...
]
そして、私のテンプレートは次のようなものです:
<div id="entry" data-win-control="WinJS.Binding.Template">
<div data-win-bind="textContent: title">
</div>
<a class="action">Action</a>
</div>
バインドしたら、次のことを行います。
- との値
className
にa.action
基づいて を変更します。allow_action
action_type
- バインディングデータの内容に基づいて、バインディング時にイベント (
addEventListener
) を添付します。a.action
これにはallow_action
、action_type
およびその他の値が含まれます。
基本的に、要素を使用してバインド前またはバインド後のコールバック関数を持ち、データを引数としてバインドしたいと考えています。コンバーターでは他のフィールドにアクセスできないため、これはコンバーターでは可能ではないようです。
その間、私は後でDOMを使用してこれらのものを手動で処理していますrender
。利用可能なより良いオプションがあるかどうか疑問に思っています。ありがとうございました。
アップデート
コメントで @GotDibbs と @RSW が示唆しているように、Sending multiple parameters to WinJS.Binding.converter() functionの解決策を使用して問題 #1 を解決することができました。#2がまだ可能かどうか疑問に思っていますか?