如何在metro.js中实现图像重新排序

How to implement Image reordering in meteor.js

本文关键字:新排序 排序 图像 实现 metro js      更新时间:2023-09-26

需要在图像采集中实现可排序功能。使用秩值对图像进行排序。。适用于所有类别。。如果图像按类别名称分类,则不起作用。。

如何进一步处理不同类别

Gallery.html

<div id="grid-container" class="cbp-l-grid-agency grid">
     {{#each images getCurrentCategory}}
          {{> image}}
     {{/each}}
     {{> addInfo}} 
</div>

Gallery.js

Template.gallery.rendered = function(){
     this.$('#grid-container').sortable({
         stop: function(e, ui) {
              el = ui.item.get(0)
              before = ui.item.prev().get(0)
              after = ui.item.next().get(0)
              if(!before) {
                  newRank = Blaze.getData(after).rank - 1
              } else if(!after) {
                  newRank = Blaze.getData(before).rank + 1
              } else {
                  newRank = (Blaze.getData(after).rank + Blaze.getData(before).rank)/2
              }
              Images.update({_id: Blaze.getData(el)._id}, {$set: {rank: newRank}})
        }
    })
}
Template.gallery.helpers({
    'getCurrentCategory': function() {
        return Template.instance().currentcategory.get();
    },
    'images': function (currentcategory) {
        if(currentcategory == 'all' || !currentcategory){
            return Images.find({},{sort: {rank: 1}});
        } 
        return Images.find({category:currentcategory});
    }
});

如果我正确理解你的问题,你只需要这样做:

return Images.find({category:currentcategory},{sort:{rank:1}})

它与所有类别光标相同,但添加了排序说明符。