看起来相当基本的东西对我来说不合适。我只是想在仪表板上显示公告列表,但我的助手似乎并没有从出版物中提取数据。我的文件在下面。
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}}
个案。我检查了数据库,可以看到可用的记录。另外,我对这些电话没有任何错误。
非常感谢任何帮助,建议等。
答案 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>