这是我的js代码:
Template.listModules.helpers({
'item' : function() {
var currentUser = Meteor.userId();
var stuff = Events.find(
{
createdBy: currentUser,
startDate: { $gte: new Date() }
}, {sort: {module:1, startDate:1}}).fetch();
var displayArray = testing();
return displayArray;
},
});
function testing(){
var currentUser = Meteor.userId();
var array = Events.find(
{
createdBy: currentUser,
startDate: { $gte: new Date() }
}, {sort: {module:1, startDate:1}}).fetch();
var finalArr = [];
var currentArr = [];
currentArr.push(array[0]);
for (var i = 1; i < array.length; i++) {
if(array[i].module == array[i-1].module){
currentArr.push(array[i])
} else {
finalArr.push(currentArr);
currentArr=[];
currentArr.push(array[i]);
}
if(i+1 == array.length){
finalArr.push(currentArr);
}
};
console.log(finalArr);
return finalArr;
}
这是我当前的HTML代码:
<template name="listModules">
<h2>List of Modules</h2>
<ul>
{{#each item}}
<li>{{module}}</li>
{{/each}}
</ul>
</template>
![这是我当前拥有的finalArr] https://ibb.co/jAyWDo
例如,如何在前端,html侧显示模块字符串。我已经在线阅读了一些人设法通过给数组一个ID并将其作为{{#each id}}来做到这一点,但是我不太确定如何在此处给数组一个ID。
我的目标是执行2个循环,以便将3个数组分成3个文本框,并将它们的内容显示在单独的框中。
答案 0 :(得分:0)
finalArr必须改为是集合而不是数组(称为finalCollection)。像这样初始化:
finalCollection = new Mongo.Collection(null);
,然后插入内容
finalCollection.insert({arr:currentArr});
请注意,每个项目都有一个ID! 将所有内容放入集合后,通过执行以下操作返回所有内容
返回finalCollection.find({});
HTML必须使用此对象来获取模块
<template name="listModules">
<h2>List of Modules</h2>
<ul>
{{#each item}}
<li>{{this.module}}</li>
{{/each}}
</ul>
</template>
这是一个丑陋的方法。希望对您有所帮助。