Meteor / CollectionFS 在下载 link 时删除前端 collection 内容 link 单击触发器

Meteor / CollectionFS removes frontend collection contents upon download link click trigger

我将 Meteor 和 CollectionFS 与 S3 一起使用,以使用不同的商店提供来自同一 collection 的缩略图和 full-size 图像。我想在 'dblclick' 事件中下载 full-size 图片。

var src = fileRecord.url({
  store: 'images',
  download: true
});

var a = $('<a>');
a.attr('href', src); // canvas.toDataURL(viewerImageObject.original.type);
a.attr('download', fileName); // canvas.toDataURL(viewerImageObject.original.type);
a.appendTo(document.body);
a.trigger('click');

不幸的是,当该事件触发时,前端 collection 中的所有项目都被删除了——这是用一个简单的 {{#each}} 块助手在 [=25 返回的游标上呈现的=]()。这在后端不持久,只在前端。

一周前我已经 filed a CollectionFS ticket 解决了这个问题,但我一直试图将其分开但无济于事。我也意识到我可以使用 FileSaver.js 和 Canvas,但是在移动设备和大图像上,尤其是在 polyfilled 浏览器上,前端会变得非常繁重。

如何防止我的 collection 中的项目在下载图像时被删除?

解决方案: 添加target="_blank"到你的锚标签,这将使你的浏览器打开一个新的标签页进行下载link 一切都会好起来的

TLDR

虽然我能够让它工作,但我不确定问题出在哪里。看起来 Iron Router 会将您当前的选项卡导航到您单击的下载 link(但地址栏上的 url 保持不变,这让我感到奇怪),因此所有 collections将会消失,您的网站将变为空白