Начало работы с Meteor - коллекция дисплея
Я новичок в Javascript и Meteor - и я уверен, что я делаю очень основную ошибку.
Я пытаюсь понять, как отобразить содержимое коллекции.
Это основано на учебнике на сайте Метеор - я заменил "Задачи" на "SW", который также является названием моей коллекции
Template.HomePrivate.helpers({
});
sw = new Mongo.Collection("sw");
if (Meteor.isClient) {
// This code only runs on the client
Template.body.helpers({
text: function () {
return sw.find({});
}
});
}
HTML:
<template name="HomePrivate">
<div class="page-container container" id="content">
<div class="row" id="title_row">
<div class="col-md-12">
<h2 id="page_title" class="pull-left">
Welcome {{userFullName}}!
</h2>
<div id="page_menu" class="pull-right">
</div>
</div>
</div>
</div>
<div class="container">
<header>
<h1>Sight Words</h1>
</header>
<p>begin list</p>
<ul>
{{#each sw}}
{{> sw}}
{{/each}}
</ul>
<p>end list</p>
</div>
</template>
<template name="sw">
<li>{{text}}</li>
</template>
1 ответ
Ваш цикл #each ничего не отображает, потому что sw не определен как помощник:
{{#each sw}}
{{> sw}}
{{/each}}
Blaze ищет имя помощника при использовании вашего цикла #each - я думаю, в этом ваше замешательство. В этом случае вы хотите использовать помощник, который вы определили выше, text
:
{{#each text}}
{{> sw}}
{{/each}}
sw
не был определен как помощник, поэтому Блейз не признает его.
Сейчас, {{> sw}}
является допустимым синтаксисом, потому что он определен как шаблон (для этого предназначен символ>). Предполагая, что ваша коллекция SW имеет поле text
, ваш цикл #each должен теперь правильно отображаться.