如何在空格键 #each 标签中显示来自两个不同 Collection 文档的数据?

How Do I Display Data From Two Different Collection's Documents in Spacebars #each Tag?

我有 2 个 Collection(其中一个是标准 Collection,另一个是 CFS Collection 来存储我上传的图像):

Products = new Mongo.Collection('products');

Uploads = new FS.Collection('uploads', {
  stores: [new FS.Store.FileSystem('uploads', {path: '~/projectUploads'})]

});

Products collection 中的某些文档有一个字段或 key/value 对 'product_main_image' 用于存储存储在 Uploads CFS 中的上传文件的文件名 collection.

在我的页面上我设置了一个助手:

Template.admin_products.helpers({

  products: function(){
    console.log('inside helperproduct');

    return Products.find();
  }

});

并且在 html 我有:

{{#each products}}
    {{product_name}}
    {{product_main_image}}
  {{/each}}

但是我想显示上传的文件,而不是 {{product_main_image}} 显示的实际文件名,就像我使用此代码访问它一样:

Uploads.findOne({"original.name":product_main_image});

此页面是我使用 {{#each products}} 显示所有产品的地方,我还想显示存储在 Uploads CFS Collection.[=18= 中的每个产品的图像]

这可能吗? 我怎样才能做到这一点? 谢谢...

这可能吗?

我怎样才能做到这一点?

您可以使用 this 的上下文。在 Uploads.findOne()

这就是 HTML 的样子。

{{#each products}}
   {{product_name}}
   {{product_main_image}}
    {{#with image}}
      <img src="{{this.url}}" />
    {{/with}}
 {{/each}}

还有图像助手。

Template.example.helpers({
  image:function(){
    Uploads.findOne({"original.name":this.product_main_image});
   }
})

这里有一个快速 MeteorPad 展示了如何实现这一点(我使用了 2 个虚拟集合,但想法是一样的)