【问题标题】:How Do I Display Data From Two Different Collection's Documents in Spacebars #each Tag?如何在空格键 #each 标签中显示来自两个不同集合文档的数据?
【发布时间】:2015-06-25 13:04:44
【问题描述】:

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

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

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

});

Products 集合中的某些文档具有“product_main_image”的字段或键/值对,其中存储了上传文件的文件名,该文件存储在 Uploads 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}} 显示所有产品的地方,我还想显示存储在 Uploads CFS 集合中的每个产品的图像。

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

【问题讨论】:

    标签: javascript meteor spacebars meteor-collections


    【解决方案1】:

    这可能吗? 是的

    我怎样才能做到这一点?

    您可以使用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 个虚拟集合,但想法是一样的)

    【讨论】:

    • 谢谢...确实有效...我知道如何使用助手...但我不知道如何以这种方式应用...非常感谢:)跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    相关资源
    最近更新 更多