我有一个集合:
MenuItems = new Mongo.Collection('menu_items');
我也有一个数组:
var arrayToInsert = ['Gemstone', 'Rings'];
然后我通过以下方法将此数组插入到集合中:
MenuItems.insert(arrayToInsert);
RoboMongo中显示的mongodb内的结果文档是:
{
"_id" : "yRXmFGxLCZXLf9Ynh",
"0" : "Gemstone",
"1" : "Rings"
}
在我的模板助手中,我有:
menuItems: function(){
return MenuItems.find();
},
在我的.html文件中,我这样做:
{{#each menuItems}}
{{this}}
{{/each}}
但我只得到这个输出:
[object Object]
如何使用Spacebars迭代这些数据,以便我可以显示'Gemstone'和'Rings'????
非常感谢。
答案 0 :(得分:3)
如果希望数组表示菜单项值,则应将它们插入到集合中,如下所示:
arrayToInsert.forEach(function(menuItem){
MenuItems.insert({
label: menuItem
});
});
然后您可以在模板中显示菜单项:
JS
Template.menu.helpers(function(){
menuItems: function(){
return MenuItems.find();
}
});
HTML
<template name="menu">
<ul>
{{#each menuItems}}
<li>{{label}}</li>
{{/each}}
</ul>
</template>
如果要将数组存储为集合文档的一部分,请使用以下代码:
JS
MenuItems.insert({
items:arrayToInsert
});
HTML
<template name="menu">
{{#each menuItems}}
<ul>
{{#each items}}
<li>{{this}}</li>
{{/each}}
</ul>
{{/each}}
</template>