9

内のプロパティの値に基づいて表示または非表示にする div を含むテンプレートを含む Windows 8 アプリがありますdata-win-control="WinJS.Binding.Template"。私は運なしで次のことを試しました:

<div data-win-bind="visible: isMore"> ..content... </div>

ここisMoreで、データバインドされたアイテムのブール プロパティです。

どうやってやるの?目に見えるプロパティが存在しないと思いますか?

4

1 に答える 1

14

その通りです。visibleプロパティは存在しませんが、CSSとバインディングコンバーターを使用して外観を制御できます。

まず、を使用WinJS.Binding.converterして、ブール値をCSS表示プロパティの値に変換するコンバーター関数を次のように作成します。

var myConverter = WinJS.Binding.converter(function (val) {
    return val ? "block" : "none";
});

関数がグローバルに利用可能であることを確認してください-私はグローバルWinJS.Namespace.defineにアクセスできるこれらのコンバーターのコレクションを作成するために使用します。

これで、データバインディングでコンバーターを使用して、次のようにCSS表示プロパティを制御できます。

<div data-win-bind="style.display: isMore myConverter"> ..content... </div>
于 2012-05-19T16:45:41.370 に答える