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