Meteor.publish / Subscribe问题

时间:2014-01-21 09:23:38

标签: javascript meteor publish-subscribe

我需要使用 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();
        });
}

1 个答案:

答案 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>