我有helper function
Template.myTemplate.helpers({
listaPerfilUsuarioLikesPeligro:function(){
var findLike = LikesPost.find({authorId:Meteor.userId()}).fetch();
for(var i = 0;i<findLike.length;i++){
console.log(findLike[i].postId)
console.log(findLike[i].author)
var findLook = Peligro.find({_id:findLike[i].postId}).fetch();
console.log(findLook)
return Peligro.find({_id:findLike[i].postId}).fetch();
}
}
});
所以首先我在我的LikesPost
集合上进行查找,它工作得非常好,并返回两个对象。现在我尝试使用for循环,对'Peligro'集合进行查找,但它只是将一个对象返回到html模板。
html看起来像这样:
{{#each listaPerfilUsuarioLikesPeligro}}
Nombre de Mascota {{metadata.tipoDeAnimalPeligro}}<br>
{{/each}}
第二个`console.log'返回id,他也写了2次。
此外,如果我在for循环中更改return语句中的索引,它将返回数组中的第二个对象:
return Peligro.find({_id:findLike[1].postId}).fetch();
这就是我的控制台的外观:
ZW5TFWiAzCBgoTvn4
ethan
[FS.File]
MnEEb8bhaNFyLPhpe
ethan
[FS.File]
这是完成此任务的正确方法吗?
答案 0 :(得分:1)
你的for循环中有一个return
。当然,你的助手不会返回findLike
中每个对象的结果,而只返回第一个对象的结果。
也许这就是你想要的?
Template.myTemplate.helpers({
listaPerfilUsuarioLikesPeligro:function(){
var findLike = LikesPost.find({authorId:Meteor.userId()}).fetch();
var rtv = [];
for(var i = 0;i<findLike.length;i++){
console.log(findLike[i].postId)
console.log(findLike[i].author)
var findLook = Peligro.find({_id:findLike[i].postId}).fetch();
console.log(findLook)
rtv = rtv.concat(Peligro.find({_id:findLike[i].postId}).fetch());
}
return rtv;
}
});