流星助手不在每个循环中工作

时间:2015-05-20 13:48:56

标签: javascript meteor

看起来相当基本的东西对我来说不合适。我只是想在仪表板上显示公告列表,但我的助手似乎并没有从出版物中提取数据。我的文件在下面。

publications.js

Meteor.publish('announcements', function() {
    return Announcements.find();
});

模板JS(dashboard.js):

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

查看JS(dashboard.html):

<template name="dashboard_announcements">
    {{#each announcements}}
        {{> single_announcement}}
    {{else}}
        There are no Announcements to display.
        <br>
        <h5><a href="{{pathFor 'newAnnouncement'}}">Why don't you make one now?</a></h5>
    {{/each}}
</template>

当我在浏览器中查看该页面时,我只看到{{else}}个案。我检查了数据库,可以看到可用的记录。另外,我对这些电话没有任何错误。

非常感谢任何帮助,建议等。

2 个答案:

答案 0 :(得分:2)

就像Sindis建议的那样,您可能会错过dashboard.js中的订阅。

Meteor.subscribe('announcements');

或者另一件事可能是你在错误的模板中有帮手。而不是:

Template.sendersDashboard.helpers({...

你应该:

Template.dashboard_announcements.helpers({...

答案 1 :(得分:0)

您的JS和HTML中有不同的模板名称:

JS中的模板名称为true

sendersDashboard

HTML中的模板名称为Template.sendersDashboard.helpers({ //code });

dashboard_announcements

我建议使用模板的camelCase名称,因此请修复HTML名称:

<template name="dashboard_announcements">
  <!-- code -->
</template>