Ich bin eine editierbare Baumstruktur mit Knockout sortierbar machen und fand dieses große Beispiel: http://jsfiddle.net/rniemeyer/LqttfKnockout sortierbar macht Duplikate (Herstellung einer Baumstruktur)
Das funktioniert gut, aber ich habe eine Liste der Root-Knoten, damit ich das geändert Die Wurzelknotenbindung ist auch eine sortierbare Liste von Baumelementen. Fiddle: http://jsfiddle.net/yyqnhngm
Die neue Vorlage Markup sieht wie folgt aus (beachten Sie, dass die Wurzel ul eine sortable
Bindung und keine template
wie im Original):
<script id="nodeTmpl" type="text/html">
<li>
<a href="#" data-bind="text: name"></a>
<div>
<ul data-bind="sortable: { template: 'nodeTmpl', data: $data.children }"></ul>
</div>
</li>
</script>
<ul data-bind="sortable: { template: 'nodeTmpl', data: root }"></ul>
Wenn Sie B in A ziehen, dann B wird kopiert werden statt in A bewegt. Das ist das Problem, ich suche nach einer Ursache für und die Lösung für. Mein erster Gedanke ist, dass sortierbar denkt, dass der Artikel zur gleichen Zeit in beide Listen gezogen wird, vielleicht wegen eines Markup-/HTML-Problems, aber ich kann nicht sehen, wie.
Hinweis: Ich weiß, ich könnte einfach alle Elemente in einen Grundton einfügen, aber das macht für meine Zwecke keinen Sinn.
Teilt die Bibliothek benötigen, um die Elemente in einem 'observableArray' sein zu sortieren? Wenn ich das 'root' Array zu einem' ko.observableArray' ändere, funktionieren alle _seems_ einwandfrei. Aus der Dokumentation: "knockout-sortable ist eine Bindung für Knockout.js, die entwickelt wurde, um ** observableArrays ** mit der sortierbaren Funktionalität von jQuery UI zu verbinden" – user3297291
Ich denke, Sie haben Recht, das scheint es zu sein. Wenn Sie eine Antwort einreichen können, werde ich es als Lösung markieren :) – altschuler