Итак, если у меня есть шаблон, и у меня есть некоторые помощники, определенные для этого шаблона, я могу использовать их как правило в шаблоне, но если я попытаюсь использовать их внутри {{#each whatever}}
, это даст мне ошибка. Смотрите пример:Метеор: помощники шаблонов доступа внутри каждого утверждения
{{#unless pollIsOpenHelper}}
<p>This poll closed on {{formatDate time_poll_closed}}.</p>
{{/unless}}
<table>
{{ #each indexedArray choices }}
<tr>
<td><span class="votes">{{ votes }}</span></td>
<td><span class="text">{{ text }}</span></td>
<td><a href="#" class="vote" data-id="{{ _index }}"><button>Vote for this option</button></a></td>
</tr>
{{#unless pollIsOpenHelper}}
<p>CLOSED.</p>
{{/unless}}
{{ /each }}
</table>
выше помощник внутри {{#unless}}
работает отлично, только отображает сообщение, если опрос закрыт. Однако, если я попытаюсь сделать то же самое, чтобы отобразить сообщение внутри {{#each}}
ниже, помощник не работает и всегда показывает мне сообщение. Консоль дает мне: Exception in template helper: TypeError: Cannot read property 'poll_is_open' of undefined
EDIT: Это вспомогательный код:
Template.poll.helpers({
pollIsOpenHelper: function() {
var poll_is_open = Polls.findOne({_id: this._id}).poll_is_open;
return poll_is_open;
},
});
[con текстовые изменения] (https://www.discovermeteor.com/blog/a-guide-to-meteor-templates-data-contexts/) внутри '# each'. Точный ответ не может быть задан без вспомогательного кода. –
Я добавил вспомогательный код –