使用Meteor.js迭代MongoDB集合

时间:2015-12-18 09:51:23

标签: mongodb meteor

我正在学习Meteor,我正在为练习目的构建一个非常基本的应用程序。 我刚刚安装了Collection FS,我使用cfs:filesystem上传文件。 我有一个名为todos witch的集合,其中包括以下字段:

"files" : [ "/cfs/files/files/HPxaJrEbvNjcnmA6m/files?store=files", "/cfs/files/files/jfKua2BszyfqiKYYu/files?store=files" ]

插入是通过服务器端的方法完成的:

'addFiles':function(id,url){
  todos.update(id, {
    $push: {files:url}
  });

如何迭代这些以将它们放入我的模板中的网址?

我在模板中尝试的是:

{{#each todos}}
{{#each files}}<a href="{{files}}" target="_blank"> file</a>{{/each}}
{{/each}}

但这仅仅呈现<a target="_blank"> file</a> 如果文件对象没有任何值,我不想显示任何网址。 我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

我假设您正在订阅todos集合并有帮助:

Template.NAME.helpers({
    todos : function(){
       return todos.find();
    }
})

在模板NAME中试试这个:

{{#each todos}}
   {{#each this.files}}
     <a href="{{this}}" target="_blank"> file</a>
   {{/each}}
{{/each}}

如果files为空,则不会显示任何内容。