У вас есть список элементов со свойствами id
, parentid
и message
. parentid
ссылается на другой элемент в том же списке. Количество вложенных уровней не ограничено. Как бы вы это реализовали?
Другими словами, как это принять:
var data = [
{
id: 1,
parentid: 0,
message: "I'm 1, and I have no parent."
}, {
id: 2,
parentid: 1,
message: "I'm 2, and 1 is my parent."
}, {
id: 3,
parentid: 1,
message: "I'm 3, and 1 is my parent."
}, {
id: 4,
parentid: 0,
message: "I'm 4, and I have no parent."
}, {
id: 5,
parentid: 1,
message: "I'm 5, and 2 is my parent."
}
];
И превратите это в это:
<ul>
<li>
I'm 1, and I have no parent.
<ul>
<li>
I'm 2, and 1 is my parent.
<ul>
<li>
I'm 5, and 2 is my parent.
</li>
</ul>
</li>
<li>
I'm 3, and 1 is my parent.
</li>
</ul>
</li>
<li>
I'm 4, and I have no parent.
</li>
</ul>
Есть ли хороший и быстрый способ сделать это в шаблоне? Без перебора всего массива, создания нового и его рендеринга?
И даже чем, какова лучшая реализация шаблона, который рекурсивно рендерится до тех пор, пока ничего не останется?
id: 5
должен бытьparentid: 2
, а неparentid: 1
- person martypdx   schedule 28.03.2014