нокаут, связывающий отношения «один ко многим» с самим собой (рекурсия в нокауте)
Так что в моей базе данных есть модель, которая имеет отношение один ко многим с самим собой. Хорошим примером этого является система комментариев, как на 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 уровня дочерних комментариев, но мне нужно иметь возможность обрабатывать неизвестное количество дочерних комментариев.