流星集合没有显示

时间:2016-01-13 18:19:23

标签: meteor meteor-autoform meteor-collection2

我正在尝试显示我的Orders集合。 Orders集合模式具有从Items集合填充的选择字段。

我似乎无法将Orders集合显示在我的管理员模板上。我已经确认我正在使用Mongol发布到该集合,并且我在控制台中没有收到任何错误。我也尝试在表格中显示它而没有运气。

有什么想法吗?我还在学习流星,一直盯着这个屏幕好几个小时......现在可能需要一些清新的空气,以后再看一眼......

/collections/orders.js

Orders = new Mongo.Collection("orders");
    Orders.attachSchema(new SimpleSchema({
      station: {
        type: String,
        label: 'Station',
        max: 2,
      },
      itemselect: {
        type: [String],
        label: 'Items',
        optional: false,
        autoform:{
          type: "select",
          options : function()  {
            return Items.find().map(function (c) {
              return {label: c.name , value: c._id}
            })
          }
        }
      }
    }));

/templates/admin.html

<template name="ordersTable">
  <div class="admin">
    <div class="panel panel-default">
      <div class="panel-heading">
       <h4 class="panel-title">
         <a data-toggle="collapse" href="#collapse2">
           <button type="button" class="btn btn-default navbar-btn">Orders</button>
         </a>
       </h4>
     </div>
     <div id="collapse2" class="panel-collapse collapse">
       <div class="panel-body">
         <ul>
           {{#each orders}}
             <li>{{> station}}</li>
           {{/each}}
         </ul>
       </div>
       <div class="panel-footer">
         {{> addOrderFormAdmin}}
       </div>
     </div>
    </div>
  </div>
</template>

/templates/admin.js &lt;这最终成了我的问题..

Template.dashboard.rendered = function() {
  return Orders.find();
};

**应该是帮助..所以这反而是:

Template.ordersTable.helpers({
  orders: function () {
    return Orders.find();
  }
});

插入订单

<template name="addOrderFormAdmin">
  {{> autoformModals}} <!-- this is required for this modal to open -->
    {{#afModal class="btn btn-primary" collection="Orders" operation="insert"}}
      Add New Order
    {{/afModal}}
</template>

2 个答案:

答案 0 :(得分:1)

您的dashboard rendered回调中的代码没有任何意义。我想您想为ordersTable模板创建一个helper function

Template.ordersTable.helpers({
  orders: function () {
    return Orders.find();
  }
});

此外,请注意,Meteor版本1.0.4.2(及更高版本)中不推荐使用Template.myTemplate.rendered,而是使用 Template.myTemplate.onRendered

答案 1 :(得分:0)

如果您已删除autopublish包,请检查发布和订阅。首先,查看是否可以通过控制台访问集合(在网页上,而不是命令行)。其次,看看你的帖子后是否更新了这个集合(为此你可以通过输入&#34; meteor mongo&#34;在服务器运行或只是下载Robomongo时使用命令行。)