在後端,我從API獲取文件夾結構。我遞歸迭代這個結構來獲取所有文件夾。這些都存儲在一個'平'有序字典中。每個文件夾都存儲有一些屬性以定義結構,父文件夾的ID,子文件夾的數量以及本身是否是子節點。從'平'字典文件夾結構的層次無序列表
現在從這個有序的字典,我想用genshi做一個很好的層次視圖,但我迄今得到的最遠的是以下模板。這隻會導致兩個級別,即根級別和下一級別。任何更深的文件夾都將顯示在第二級。
我試圖做到這一點,而不必訴諸做大量的關係檢查對數據的初始分析,以獲得文件夾是在和水平的東西。有沒有人有任何聰明的想法?
<body>
<div class="main_content">
<h1>Catalogue Tree</h1>
<ul>
<li py:for="nodeId, nodeProps in nodes.iteritems()">
<a py:if="nodeProps['SubNode'] == False" href="${tg.url('/node/' + nodeId)}">${nodeProps['Name']}</a>
<py:if test="nodeProps['SubNode'] == True">
<ul>
<a href="${tg.url('/node/' + nodeId)}">${nodeProps['Name']}</a>
</ul>
</py:if>
</li>
</ul>
</div>
</body>
你的數據節點是否有父 - >子鏈接,或只有子 - >父?使用前者,你可以定義一個遞歸模板函數來展開它們,但是如果你沒有一個簡單的方法來獲取所有父項的子項,那將會更困難。 – Blckknght
在原始api中,xml結構實際上是嵌套的,所以我可以輕鬆地添加父級>子級鏈接。但我不確定在那之後如何繼續。你能詳細說明嗎? – Sartsj
我會用'py:def'來定義一個輸出鏈接到一個節點的「宏」,然後,如果該節點有子節點,則創建一個嵌套列表並遞歸地調用它自己來呈現每個子節點。我的系統中沒有'genshi',所以我不能真正做出我知道會有效的答案,但希望這個建議足以讓您走上正確的道路。 – Blckknght