**Aktualisiert für 1.0
Probieren Sie MeteorPad aus: http://meteorpad.com/pad/TzQTngcy7PivnCCjk/sortable%20demo
Hier ist die Version, die ich implementiert habe - sehr ähnlich zu der von @tomsabin, aber keine Collection Behaviors erforderlich. Es hat gut für mich mit mehreren Benutzern gearbeitet und ist reaktiv.
HTML (Wahrscheinlich ist es keine gute Idee, die div id gleich _id zu machen, ich bin sicher, dass Sie eine bessere Lösung finden werden).
<template name="myList">
<div class="step_list">
{{#each card}}
{{> card_template}}
{{/each}}
</div>
</template>
<template name="card_template">
<div class="card" id="{{_id}}">
<h3>{{name}}</h3>
</div>
</template>
JS
Template.myList.helpers ({
card : function () {
return Cards.find({}, {sort: {pos: 1}}
)}
})
Template.myList.rendered = function(){
$(".step_list").sortable({
items: ".card",
delay: 100,
refreshPositions: true,
revert: true,
helper: "clone",
scroll: true,
scrollSensitivity: 50,
scrollSpeed: 35,
start: function(event, ui) {
$(ui.helper).addClass("dragging");
}, // end of start
stop: function(event, ui) {
$(ui.item).removeClass("dragging");
}, // end of stop
update: function(event, ui) {
var index = 0;
_.each($(".card"), function(item) {
Cards.update({_id: item.id}, {
$set:{
pos: index++,
}
});
});
}
}).disableSelection();
}