2012-12-07 2 views
5

Ich habe eine knockout sortierbare Liste mit knockout sortierbaren Listen drin. Im Wesentlichen ist es das grundlegende "verfügbare Student" Beispiel (http://jsfiddle.net/rniemeyer/UdXr4/), nur möchte ich, dass die Tabellen auch sortierbar sind.Wie kann verhindert werden, dass die Koexistenz von geschachtelten Sortierungen die Unterliste fallen lässt?

Ich habe das meistens funktioniert, aber ich habe ein Problem mit der Möglichkeit, Tabellen in andere Tabellen zu ziehen.

konnte ich eine AllowDrop Funktion auf der Tabellenliste hinzufügen Studenten zu verhindern, dass in der Tabellenliste gelöscht wird,

 this.isTable = function(arg) { 
      return arg.sourceParent != undefined; 
     }; 

so würde ich hatte gehofft, etwas ähnliches auf den Schülerlisten, die nicht erlaube einen Tisch, aber für das Leben von mir kann ich es nicht herausfinden. Ich habe versucht, die ID zu sehen, oder sogar zu sehen, ob die Gender-Eigenschaft verfügbar ist (weil es nur auf Studenten sein sollte) ohne Erfolg ...

Ive bearbeitet eine Jfiddle um es meiner Situation mehr ähneln; Sie werden sehen, wenn Sie eine Tabelle ziehen, können Sie sie in eine andere Tabelle fallen lassen. http://jsfiddle.net/nYSLq/1/

Jede Hilfe oder Vorschläge würden sehr geschätzt werden.

Antwort

5

Für diese Art von Sache, ist eine gute Wahl, die connectClass Option zu verwenden. Dies wird helfen, die Art von Containern zu klassifizieren, in die Artikel fallen gelassen werden können.

So könnten Sie tun:

<div id="main" data-bind="sortable: { data: tables, connectClass: 'tables' }"> 
    <div class="table"> 
     <div data-bind="text: students.id"></div> 
     <div class="seats" data-bind="sortable: { data: students, allowDrop: $root.isTableFull, connectClass: 'students' }"> 
      <div class="student" data-bind="text: name"></div> 
     </div> 
    </div> 
</div> 

Beachten Sie, dass das Plugin, dass die Klasse auf die entsprechenden Elemente für Sie nicht zuordnen.

Jetzt sortieren die Schüler nur noch mit den Schülern und die Tische sortieren nur zusammen.

Hier ist ein aktualisierter Geige mit einigen der unnötigen Extras gezupft: http://jsfiddle.net/rniemeyer/7yA2s/

+0

Thank you so viel, das ist genau das, was ich brauchte, und die Bereinigung ist auch nett. Ich habe versucht, die connectedClass, aber ich denke, ich war verwirrt darüber, wie man es benutzt und konnte es nicht zum Laufen bringen. Nochmals vielen Dank und für die schnelle Antwort. – user1886432