2

有没有办法命名 Meteor.js 会话?在较大的应用程序中可能会发生我不小心替换现有会话的情况。如果我使用命名空间会话,这个机会会更低。

我想到的当前实施中的唯一解决方案是:

Session.set('namespace1Value');
Session.set('namespace2Value');

我想做类似的事情:

var sectionFoo = Session.section('foo');
sectionFoo.set('bar');

Meteor 会支持 Session 命名空间吗?

4

2 回答 2

0

正如本次演讲中所见,本地反应状态将成为 Meteor UI 的一部分,我们可以期待 Meteor 1.0(将于 2014 年初推出)。现在,我只使用长会话变量名。

于 2013-10-13T14:37:12.363 回答
0

我认为这应该做你想要的。如果您觉得它有用,您可能希望将其打包并发布到 Atmosphere。

_.extend(Session, {
  /**
   * Returns a wrapper around Session
   * which automatically prepends
   * the specified name to all keys.
   *
   * @method namespace
   * @param {String} name Name of namespace
   * @param {String} [separator] Separator for prepended
   *                 name. Default is '-'
   * @return {Object} Namespaced session object
   */
  namespace: function (name, separator) {
    var ns;

    separator = separator || '-';
    ns = name + separator;

    return {
      get: function (key) {
        return Session.get(ns + key);
      },
      set: function (key, value) {
        return Session.set(ns + key, value);
      },
      setDefault: function (key, value) {
        return Session.setDefault(ns + key, value);
      },
      equals: function (key, value) {
        return Session.equals(ns + key, value);
      }
    }
  }
});
于 2013-10-13T22:08:50.177 回答