Knockout, das eine Eins-zu-Viele-Beziehung auf sich selbst bindet (Rekursion im Knockout)

Also habe ich in meiner Datenbank ein Modell, das eine Eins-zu-Viele-Beziehung zu sich selbst hat. Ein gutes Beispiel hierfür ist ein Kommentarsystem wie bei reddit.

Ich mache gerade so etwas:

<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>

die offensichtlich nur eine Ebene von Kindern unterstützt. Gibt es eine saubere Möglichkeit, dies zu strukturieren, wenn ein Child (Children [i]) möglicherweise auch über ein Children-Array verfügt, über das eine Schleife erstellt werden muss. In meinem Beispiel könnte es technisch gesehen unendlich viele Level geben (wird es nicht sein).

Ich bin mir ziemlich sicher, dass ich mir etwas Hackiges einfallen lassen könnte, aber ich denke, es könnte einen besseren Weg geben. Vielen Dank.

Bearbeiten:

Daten, die ich zuordnen möchte:

{  
   "@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":[  

                     ]
                  }
               ]
            }
         ]
      }
   ]
}

Wie Sie sehen können, enthält dies 3 Ebenen von untergeordneten Kommentaren, aber ich muss in der Lage sein, mit einer unbekannten Anzahl von untergeordneten Kommentaren umzugehen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage