1

我正在尝试显示我的 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 <这最终成为我的问题..

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>
4

2 回答 2

1

您的dashboard rendered回调中的代码没有任何意义。我想你想为你的模板创建一个辅助函数:ordersTable

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

此外,请注意Template.myTemplate.rendered在 Meteor 版本 1.0.4.2(及更高版本)中已弃用,请Template.myTemplate.onRendered改用。

于 2016-01-13T21:32:33.377 回答
0

如果您已删除自动发布包,请检查发布和订阅。首先,看看您是否可以通过控制台(在网页上,而不是在命令行上)访问该集合。其次,查看您的帖子是否更新了集合(为此,您可以通过在服务器运行时键入“meteor mongo”来使用命令行,或者只需下载 Robomongo)。

于 2016-01-13T20:05:30.257 回答