2012-07-16 106 views
1

我瘋了,試圖爲我的問題找到一個解決方案。我有一個JS對象,它有一個層次結構和層次結構的級別是未知的。利用JQuery的模板和淘汰賽JS的我能得到的樹結構<ul> & <li>但我的要求是,爲每一個孩子,我需要呈現在Table新因此,可以說我的結構是:遞歸tr與Knockout JS和Jquery模板

{ 
    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/

如果我使用ulli,我可以通過使用

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

但因爲我的模板本身具有<tr>開始我不知道我怎麼叫,而無需編寫的節點,其中data-bind="template:{...}部分模板遞歸調用模板?最初的呼叫將工作,因爲它在<tbody>上,但我不能在tbodytbody遞歸調用模板來呈現其他tr

我希望這個解釋是足夠的。讓我知道你是否需要更多細節。任何幫助表示讚賞。

回答

3

您可以從該模板內部遞歸調用模板,與foreach的$ data上下文屬性結合使用,您可以做你正在尋找的東西......我在解釋事情時非常糟糕,所以我更新了你的jsfiddle做你正在尋找的,http://jsfiddle.net/xpsa4/5/

+0

這正是我所期待的。太感謝了。 – Wiz 2012-07-16 23:04:02