我正在开发我的第一个流星应用程序,并且刚刚使用CollectionFS和gridfs实现了上传图像。我可以使用<img src="{{this.url}}">成功查看上传的图像,但需要从Meteor中的客户端访问它。我正在尝试使用集合中另一个文档中的字段,并根据字段在元数据中是否匹配来调用图像。 (使用空格键registerHelper基本连接两个文档)。我不愿在其他文档中嵌入图像,因为我担心空间需求。

我尝试查看Meteor-cfs-ui软件包,但无法将其转换为我自己的空格键registerHelper。浏览Meteor-CollectionFS上的UI Helpers页面时,有一个断开的链接指向我认为我的答案所在的位置。

我可以查看我上传的所有图像,因此使用{{this.url}}不会出现问题。只是尝试使用客户端上的FS.Collection上的查询获取集合中图像的url,这让我很困扰。

这是我的代码:

client.html

    {{#each individualBuyOffers}}
    <div class="col-sm-6 col-md-4">
        <div class="thumbnail">

            <h4>{{shoePict make}}</h4>

        </div>
    </div>
    {{/each}}


client.js

      UI.registerHelper('shoePict',function(context,options){

         if(context){
             //The goal is to query the Pictures collection
             //and find the url to the picture I want
             //then output it to HTML from the SafeString
             //Pictures is my FS.Collection
             var url = Pictures.find({'metadata.make': context});
             //var collection = FS._collections[Pictures];
             //return collection ? collection.findOne(id) : null;
             //I know this is not the right statement
             return new Spacebars.SafeString( "<img src=\"{{this.url}}\">") ;
             }
      });


如果还有其他更简单的解决方案,可以通过HTML将CollectionFS中的图片附加到另一个文档中,我很乐意听到。我只是想学习。谢谢。

最佳答案

在js中,您可以使用fileObj.url()访问collectionFS文件的网址,例如:

var url = Pictures.findOne({'metadata.make': context}).url();

08-25 09:13