1

私は自分の問題の解決策を見つけようと夢中になっています。階層構造のJSオブジェクトがあり、階層のレベルが不明です。JQueryテンプレートとKnockoutJSを使用すると、<ul>&を使用してツリー構造を取得できますが、<li>私の要件は、子ごとに新しいものをレンダリングする必要があるため、構造が次のようになっているとします。RowTable

{
    Name: 'First', 
    Total: 100,
    Set: [
        { 
            Name: 'First_1', Total: 30,
            Set: [{Name: 'First_1_1', Total: 10}, {Name: 'First_1_2', Total: 20}]  
        },
        { Name: 'First_2', Total: 0 }
    ]
}

表は次のようになります。

<table width="100%">
    <tbody>
    <tr><th>Name</th><th>Total</th></tr>
    <tr><td>First</td><td>100</td></tr>
    <tr><td>First_1</td><td>30</td></tr>
    <tr><td>First_1_1</td><td>10</td></tr>
    <tr><td>First_1_2</td><td>20</td></tr>
    <tr><td>First_2</td><td>0</td></tr>
    </tbody>
</table>

以下は私が思いついたフィドルです:http://jsfiddle.net/paragnair/xpsa4/

を使用している場合は、を使用ul liしてテンプレートを再帰的に呼び出すことができます

<ul data-bind="template: {name: 'tree1', foreach: Set}"></ul>

しかし、私のテンプレート自体はで始まるので<tr>、パーツでノードを記述せずにテンプレートを呼び出す方法がわかりませんdata-bind="template:{...}か?最初の呼び出しは機能するので機能しますが、テンプレートを再帰的に呼び出して他のをレンダリングするためのinsideを含める<tbody>ことはできません。tbodytbodytr

この説明で十分だと思います。詳細が必要な場合はお知らせください。どんな助けでも大歓迎です。

4

1 に答える 1

3

そのテンプレート内からテンプレートを再帰的に呼び出すことができます。これをforeachの$dataコンテキストプロパティと組み合わせると、探していることを実行できます...説明がひどいので、jsfiddleを更新してあなたが実行したことを実行します。再検索、http://jsfiddle.net/xpsa4/5/

于 2012-07-16T18:48:12.333 に答える