2016-11-18 4 views
0

Я использую Blaze с Meteor. У меня есть announcements_list.htmlМетеор с пламенем: мой помощник не работает с {{#each}} петлей

<template name="AnnouncementsList"> 
    <div class="announcements"> 
     <ul class="collection"> 
      {{ #each announcements }} 
       {{ >announcementItem }} 
      {{ /each }} 
     </ul> 
    </div> 
</template> 

И announcements_list.js

Template.AnnouncementsList.helpers({ 
    announcements: function() { 
     return Announcements.find({}, {sort: {createdAt: -1}}); 
    } 
}); 

Если удалить {{}} каждый цикл, я могу прочитать {{> announcementItem}}. Поэтому я считаю, что проблема заключается в функции помощника. Помогите мне пожалуйста =. = ...

+0

Похоже, что это должно сработать. Есть ли какой-либо контекст данных для вашего шаблона 'AnnouncementsList'? то есть он завернут в другой шаблон, который передает данные? –

+0

Вы видите сообщения об ошибках в консоли? – Khang

+0

Yeah @Hhang мой плохой ... У меня были некоторые ошибки в моей консоли с материализацией. Спасибо ! – MiceBishop

ответ

1

Есть ли объявление в ваших объявлениях db или вы пытаетесь получить доступ к данным из шаблона? Если первый, ваш звонок должен быть {{announcementItem}}. В #each, #unless или # с отсутствующей стрелкой.

0

Вы создаете тот же шаблон для каждого элемента в announcements. Где этот шаблон получает данные? Я хотел бы сделать что-то вроде этого:

<template name="AnnouncementsList"> 
    <div class="announcements"> 
     <ul class="collection"> 
      {{#each item in announcements}} 
       {{> announcementItem item}} 
      {{/each }} 
     </ul> 
    </div> 
</template> 

Тогда полный item объект будет доступен в вашем announcementItem через

  • Template.instance().data в помощниках и событий
  • this.data в onCreated и onRendered.