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



我有 2 个集合(其中一个是标准集合,另一个是 CFS 集合,用于存储我上传的图像):

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

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

产品集合中的某些文档具有"product_main_image"字段或键/值对,用于存储存储在上传 CFS 集合中的已上载文件的文件名。

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

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}} 的所有产品,我还想显示存储在上传 CFS 集合中的每个产品的图像。

这可能吗?我该如何实现这一目标?谢谢。。。

这可能

吗?是的

我怎样才能做到这一点?

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

这就是 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个虚拟集合,但想法是相同的)

最新更新