在Meteor中发布应用程序设置(而不是文档)

时间:2014-06-27 09:53:12

标签: javascript meteor

我的应用程序中需要一些设置。现在我想在客户端上提供一些它们。所以我做了:

Meteor.startup(function () {
    Meteor.publish('settings', function () {
        return {
           isAuth: false
        }
});

我订阅了

Meteor.subscribe('settings');

这根本不起作用,不知怎的,我觉得这只适用于收藏。所以问题是如何在客户端中获取这些设置。此外,渲染内容需要这些设置,因此我在init期间需要这些数据!

2 个答案:

答案 0 :(得分:3)

将设置保存在共享的js文件中 /shared/const.js:

     Global.settings = {
        'Something'
     };

发布/订阅系统仅用于集合。

虽然在旁注中isAuth听起来不像设置而是会话变量./

答案 1 :(得分:1)

如果可以将这些配置设置放在代码中,那么就按照Marco说的那样做。

如果要在JSON配置文件中指定它们,请使用Meteor.settings - public中客户端上的配置文件Meteor.settings.public字段中的任何内容都可用。

可以通过发布/订阅执行此操作,但它可能有点过分:

// On the server
Meteor.publish("applicationSettings", function () {
  this.added("settings", "arbitrary_string", {isAuth: true});
  this.ready();
});

// On the client
Settings = new Meteor.Collection("settings"); // ONLY on the client
Meteor.subscribe("applicationSettings");
// after subscription is ready,
// Settings.findOne() returns {_id: "arbitrary_string", isAuth: true}