通过车把助手订阅流星收集

时间:2014-01-23 11:40:11

标签: meteor

在我获得流星知识的过程中,我发现了一个新的障碍。

我在申请时使用了autopublish。 我通过帮助程序注册了Settings集合,以使值全局可用。

// in settings.js
Settings = new Meteor.Collection('settings');
Settings.insert(
  {
  logo: 'Comparer Caisses Enregistreuses',
  contact: {
    human: '01 82 88 19 13',
    machine:'0440182881913'
  },
  headline: 'Comparez les meilleurs fournisseurs de Caisses!',
  tagline: "Obtenez jusqu\'à 4 devis gratuits et économisez votre temps et votre argent",
  offer: 'Economisez <span class="value">jusqu\'a 40%</span> sur votre caisses',
}
)

然后在client/main.js

  Handlebars.registerHelper('view', function(){
    return Settings.findOne();
  });

我现在已删除autopublish,我正在尝试重新注册该集合。

在服务器文件夹中:

  // server/publication.js
  Meteor.publish('settings', function(){
    return Settings.findOne();
    // or should it be `return settings` so that I can call `.findOne()` in my helper
  });

在客户端文件夹中:

// client/main.js
  Meteor.subscribe('settings');

  Handlebars.registerHelper('view', function(){
    // here nothing work
    // return settings;
    // return Settings.findOne();
    // not sure how to call the publication
  });

有没有办法通过帮助者订阅出版物?

1 个答案:

答案 0 :(得分:0)

Meteor.publish应该用在服务器端代码中,而不是客户端上。

修改

您的更新代码:

  // server/publication.js
  Meteor.publish('settings', function(){
    return Settings.findOne();
    // or should it be `return settings` so that I can call `.findOne()` in my helper
  });

正如您已经指出的那样,它应该是return Settings.find(),因为作为Meteor.publish的第二个参数给出的函数应该返回单个或多个游标(不是由{{1返回的单个文档) }})。