Meteor JS:如何使用空格键显示从 Meteor 检索到的数组中的内容 Collection

Meteor JS: How to use Spacebars to display contents inside an array retrieved from Meteor Collection

我有一个collection:

MenuItems = new Mongo.Collection('menu_items');

我也有一个数组:

var arrayToInsert = ['Gemstone', 'Rings'];

然后我通过以下方式将此数组插入 collection:

MenuItems.insert(arrayToInsert);

如 RoboMongo 所示,我的 mongodb 中生成的文档是:

{
    "_id" : "yRXmFGxLCZXLf9Ynh",
    "0" : "Gemstone",
    "1" : "Rings"
}

在我的模板助手中我有:

menuItems: function(){
    return MenuItems.find();
  },

在我的 .html 文件中,我这样做:

{{#each menuItems}}
  {{this}}
{{/each}}

但我只得到这个输出:

[object Object]

如何使用空格键遍历此数据数组,以便显示 'Gemstone' 和 'Rings'?????

非常感谢。

如果你想让数组代表菜单项的值,你应该像这样将它们插入到集合中:

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>