递归TR与淘汰赛JS和jQuery模板(Recursive tr with Knockout JS

2019-09-19 13:54发布

我要疯了试图找到我的问题的解决方案。 我有一个具有层次结构和层次结构的级别是未知的一个JS对象。 利用JQuery的模板和淘汰赛JS的我能得到的树结构与<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:{...}部分的初始呼叫将工作,因为其对<tbody>但我不能有一个tbody一个内tbody到递归调用模板来渲染其他tr

我希望这个解释就足够了。 让我知道,如果你需要更多的细节。 任何帮助表示赞赏。

Answer 1:

你可以递归调用该模板内的模板,与在foreach的$数据上下文属性相结合,使你做你找什么?我在解释可怕的事情,所以我更新你的jsfiddle做自己”重新寻找, http://jsfiddle.net/xpsa4/5/



文章来源: Recursive tr with Knockout JS and Jquery Template