我有2个集合(其中一个是标准集合,另一个是用于存储我上传图像的CFS集合):
Products = new Mongo.Collection('products');
和
Uploads = new FS.Collection('uploads', {
stores: [new FS.Store.FileSystem('uploads', {path: '~/projectUploads'})]
});
Products集合中的某些文档具有' 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集合中的每个产品的图像。
这可能吗? 我怎么能实现这个目标? 谢谢......
答案 0 :(得分:2)
这可能吗?的是
我怎么能实现这个目标?
您可以使用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个虚拟集合,但想法是一样的)