нокаут, связывающий отношения «один ко многим» с самим собой (рекурсия в нокауте)

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

Ответы на вопрос(2)

Ваш ответ на вопрос