我需要使用 Meteor.publish / subscribe 向所有客户端显示数据。我在该示例中做了一个示例示例我所做的是在服务器启动时插入了10条记录10条记录正试图向所有客户显示。问题是数据没有显示客户。我没有任何想法,因为我是meteor JS
的新手。所以请看以下代码并建议我该怎么做?
HTML代码:
<head>
<title>DataApp</title>
</head>
<body>
{{> main}}
</body>
<template name="main">
{{#each messages}}
{{messages}}
{{/each}}
</template>
和JS代码是:
Messages = new Meteor.Collection("messages");
if (Meteor.isClient)
{
Meteor.subscribe('messages');
}
if (Meteor.isServer)
{
Meteor.startup(function ()
{
// code to run on server at startup
for(var i = 0 ; i <= 10 ; i++ )
{
console.log("EXE"+i);
Messages.insert({ name: "EXE"+i });
}
});
Meteor.publish('messages', function() {
return Messages.find();
});
}
答案 0 :(得分:1)
首先,您在模板main
上缺少模板助手,因此请将Meteor.isClient
设为:
if (Meteor.isClient) {
Meteor.subscribe('messages');
// this is the template helper that is referenced by {{messages}}
// in your template 'main'
Template.main.messages = function () {
return Messages.find();
};
}
其次,你的html中的把手没有意义,试试这个:
<template name="main">
<!-- inserts value of property 'name' of each object in 'messages' -->
{{#each messages}}
{{name}}
{{/each}}
</template>