Итак, в моей базе данных у меня есть модель, которая имеет отношения один ко многим сама с собой. Хорошим примером этого является система комментариев, как на Reddit.
В настоящее время я делаю что-то вроде этого:
<div class="body" data-bind="foreach: { data: Comments}">
<span data-bind="text: '(' + OrderQualifier + ') ' + Text"></span>
<!-- ko foreach: { data: Children } -->
<span data-bind="text: '(' + OrderQualifier + ') ' + Text"></span>
<!-- /ko -->
</div>
который, очевидно, поддерживает только один уровень детей. Есть ли чистый способ структурировать это, когда Child (Children[i]) может иметь или не иметь массив Children, который необходимо зациклить. В моем примере технически может быть бесконечное количество таких уровней (но этого не будет).
Я почти уверен, что мог бы придумать что-то хакерское, но я думаю, что может быть лучший способ. Спасибо.
Редактировать:
Данные, которые я хотел бы отобразить:
{
"@odata.context":"http://localhost:3080/odata/$metadata#SectionApi(*)/$entity",
"SectionID":4,
"Text":"Text",
"Html":null,
"OrderQualifier":"1",
"IsUserCreated":false,
"Children":[
{
"@odata.context":"http://localhost:3080/odata/$metadata#SectionApi(*)/$entity",
"SectionID":4,
"Text":"Text",
"Html":null,
"OrderQualifier":"1",
"IsUserCreated":false,
"Children":[
{
"@odata.context":"http://localhost:3080/odata/$metadata#SectionApi(*)/$entity",
"SectionID":4,
"Text":"Text",
"Html":null,
"OrderQualifier":"1",
"IsUserCreated":false,
"Children":[
{
"@odata.context":"http://localhost:3080/odata/$metadata#SectionApi(*)/$entity",
"SectionID":4,
"Text":"Text",
"Html":null,
"OrderQualifier":"1",
"IsUserCreated":false,
"Children":[
]
}
]
}
]
}
]
}
Как вы можете видеть, это содержит 3 уровня дочерних комментариев, но мне нужно иметь возможность обрабатывать неизвестное количество дочерних комментариев.