2016-01-13 4 views
1

Я пытаюсь отобразить коллекцию заказов. В схеме сбора заказов есть поле выбора, заполненное из коллекции Items.Коллекция метеоров не отображается

Кажется, я не могу получить коллекцию заказов для отображения в шаблоне моего администратора. Я проверил, что я отправляю в коллекцию с 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> 

ответ

1

Ваш код внутри вашего dashboardrendered обратный вызов не имеет никакого смысла. Я думаю, что вы хотите создать helper function для ordersTable шаблона вместо:

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

Кроме того, обратите внимание, что Template.myTemplate.rendered осуждается в Метеор версии 1.0.4.2 (и позже), используйте Template.myTemplate.onRendered вместо этого.

+0

Я должен тебе пиво. – Daniel

+0

Просто исправить. Спасибо, что помогли мне узнать Метеор. – Daniel

+0

@ Даниэль Добро пожаловать! Хорошего дня. –

0

Проверка публикации и подписки, если вы удалили пакет autopublish. Во-первых, посмотрите, можете ли вы попасть в коллекцию через консоль (на веб-странице, а не в командной строке). Во-вторых, посмотрите, обновляется ли коллекция после ваших сообщений (для этого вы можете использовать командную строку, набрав «meteor mongo» во время работы сервера или просто загрузить Robomongo).

+0

У меня есть автоматическое и небезопасное включение. Я могу получить доступ к коллекции через консоль браузера devtool и увидеть объекты коллекции, когда я Orders.find(). Fetch() Я также могу получить доступ к коллекции через Mongol. – Daniel

+0

Я также могу получить доступ к объектам коллекции через db.orders.find() в консоли. – Daniel

+0

У вас есть соответствующая вспомогательная функция для отображения «заказов» в .templates/admin. Я имею в виду обычного помощника типа «return Orders.find()» – StefanL19

Смежные вопросы