2

たとえば、kockoutjs ライブラリで複数の階層を持つネストされたテンプレートを作成できますか? http://knockoutjs.com/または他の Javascript フレームワーク?

私はこのビューを持っています:

DataGrid:
Cell1, Cell2, Cell3, Within Cell4 is a ListBox.

htmlでどのように見えるか。ノックアウトjsまたは他のjavascriptフレームワークを使用して、複数の階層を持つネストされたテンプレートを作成することは可能ですか?

4

1 に答える 1

0

はい、ノックアウトでは可能です。

ルート要素内でテンプレート名を指定できます。

<ul data-bind="template: {name: listItemTmpl, foreach: items()}"></ul>

そして、そのテンプレート内で、data-bind属性を介して他のテンプレートを参照することもできます:

<script id="listItemTmpl" type="text/x-jquery-tmpl">
    <li>
        <h3 data-bind="text: name"></h3>
        <div data-bind="template: itemDetailsTmpl"></div>
    </li>
</script>

Knockout はルート テンプレート バインディングを適用しdata-bind、そのテンプレート内の属性に遭遇すると、それらを再帰的に適用します。

私のサンプルではlistItemTmpl、​​それぞれに適用されitems()、次に詳細を表示するために使用されるそれぞれに適用されますitemDetailsTmpl

パフォーマンスに関しては、非常に高速で、ユーザーにとって目立ちません。

私は現在のプロジェクトでこの方法でノックアウト テンプレートを使用しており、再帰的なテンプレートを使用すると、マークアップの一部を小さなセクションにまとめておくことができます。

これはあなたが探していたものですか?

于 2011-06-30T10:17:33.220 に答える