我有一个这个项目的集合:
{
"item1": ["foo", "bar", "baz"],
"item2": ...
}
我做了一个辅助函数,为item1
Template.temp.helpers({
items: function() {
return Col.find({},{item1:1});
}
});
这是模板
<template name="temp">
{{#each items}}
{{> anotherTemplate}}
{{/each}}
</template>
但我回来了一个空数组。为什么它不起作用?
答案 0 :(得分:0)
尝试使用{{#each items.item1}}
因为,Col.find({},{item1:1})
只是从结果中删除所有其他字段。
Limit Fields to Return from a Query
它类似于SQL中的SELECT item1 FROM table
如果您需要为item1中的每个项重复模板,则需要确定应该使用哪个数组。
<template name="temp">
{{#each items.item1}}
{{> anotherTemplate}}
{{/each}}
</template>
答案 1 :(得分:0)
也许你想要:
{{#each items}}
{{#each item1}}
{{> anotherTemplate}}
{{/each}}
{{/each}}
或者这个:
Template.temp.helpers({
items: function() {
return Col.find({},{item1:1}).map(function(item){
return item.item1
})
}
});
这样项目将返回item1数组。最初它只返回一个只有一个元素的对象数组,每个对象的item1数组:
[{
item1: ["foo","bar","baz"]
},
{
item1: ["lah","nah","jah"]
},
{
item1: ["see","gee","bee"]
}]
这样你就可以得到一个数组数组:[["foo","bar","baz"], ["lah","nah","jah"], ["see","gee","bee"]]
答案 2 :(得分:0)
Meteor mongo方法有点不同,你不能使用。
return Col.find({},{item1:1});
你可以这样使用它:
return Col.find({},{fields:{'item1':1}});
答案 3 :(得分:0)
我认为你需要从帮助
返回这样的东西return Col.findOne({}).item1
它应该现在可以使用
由于