Meteor - 用于拖放数据更改的包

时间:2014-11-20 19:04:34

标签: javascript jquery meteor

我有一个充满卡片的三列布局,我想这样做,如果用户将卡片从第1列拖到第2列,则该卡片中数据库中名为“status”的字段将从“ 1“到”2“。拖回到第1列会将卡“状态”字段更改回“1”。是否有一个包或最佳实践来解决Meteor的问题?

1 个答案:

答案 0 :(得分:1)

使用jQuery UI可以非常简单地完成此操作。当我们为Meteor in Action:https://github.com/meteorinaction/ch02-fridge/blob/master/myFridge/myFridge.js

这本书制作冰箱时,我们已经使用了这个原理

您需要的是将每张卡定义为可拖动,并将列定义为可投放容器。然后所需要的是每个列的单个块(假设您将每个列放在自己的模板中):

Template.column2.rendered = function () {
    $('#column2').droppable({
        drop: function (evt, ui) {
            var query = {_id: $(ui.draggable).data('id')};
            var data = {$set: {status: 2}};
            Cards.update(query, data);
        }
    });
};

为了使其运行良好,您需要jQuery UI。然后每列需要是一个支持可丢弃卡的容器(需要可拖动)。每列都有一个ID(此处为column2)。实际数据在Cards.update行中设置。 data变量使得更新语句的处理更容易一些。查看chapter 2 in the github repo的代码,了解它是如何完成的,这基本上是针对您的确切场景的两列示例。