所以,过去一周我一直在考虑加载多个画廊。我一直在使用火焰模板在MeteorJS中工作但是,我使用的方法不起作用。
基本上,我的所有数据都来自多个MongoDB集合,这些集合组织在一个主集合中。当网站启动时,我想访问当前集合的列表,并为每个集合显示一个照片库。
(主要照片页)
{{#each collections}}
{{>gallery collectionName=collectionName}}
{{/each}}
(图库模板)
<Template name="gallery">
{{getPhotos}}
</Template>
我尝试过使用可重复使用的火焰模板,然后运行帮助程序来显示图像。它可以工作,但我一次只能加载一个模板/集合。我想首先加载一个,当完成后,加载下一个等。
我也想知道在后端使用ReactJS和MeteorJS,但在开始之前,我想知道逐个加载组件对模板有多容易?
感谢您的任何想法或帮助!
答案 0 :(得分:0)
您可以尝试在帮助程序中合并游标,而不是在模板内部。这将强制您喜欢的顺序,并且仍然是被动的,因为find
处于被动上下文(帮助程序)中。
(HTML)
<Template name="gallery">
{{#each getPhotos}}
<img src="{{this.src}}">
{{/each}}
</Template>
(JS)
'getPhotos':function(){
let mergedCursor = [];
for (collectionObject in Template.currentData().collections){
//not clear how you are getting the collections
mergedCursor.concat(collectionObject.find().fetch());
}
return mergedCursor;
}
您也可以在同一个js文件中导入集合并直接合并它们。