0

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

我曾尝试浏览 Meteor-cfs-ui 包,但无法将其转换为我自己的空格键 registerHelper。查看 Meteor-CollectionFS 上的 UI Helpers 页面,我认为我的答案所在的链接断开了。

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

这是我的代码:

客户端.html

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

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

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

客户端.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 中的图片附加到另一个文档,我很想听听。我只是想学习。谢谢。

4

1 回答 1

1

从 js 中,您可以访问 collectionFS 文件的 url,fileObj.url()例如:

var url = Pictures.findOne({'metadata.make': context}).url();
于 2015-10-17T18:00:30.057 回答