带Blaze的Meteor:我的助手没有使用{{#each}}循环

时间:2016-11-18 21:13:31

标签: meteor meteor-blaze

我正在使用Blaze和Meteor。 我有announcements_list.html

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

并宣布_list.js

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

如果我删除{{each}}循环,我可以阅读{{&gt; announcementItem}}。所以我认为问题在于帮助器中的功能。请帮帮我=。= ...

2 个答案:

答案 0 :(得分:1)

您的公告数据库中是否有announcementItem,或者您是否尝试从模板访问数据?如果是前者,你的火焰呼叫应该是{{announcementItem}}。在#each,#unless或#with中,不需要箭头。

答案 1 :(得分: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
  • {li} this.data位于onCreatedonRendered