2013-10-13 37 views
2

有没有一种方法来命名空间Meteor.js会议?在更大的应用程序中可能会发生意外更换现有会话。如果我使用命名空间会话,这个机会就会降低。流星会话命名空间

在当前实现,在我脑海中唯一的办法就是:

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

我想这样做:

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

是流星要支持会话命名空间?

+0

命名空间'foo'是否可以保存为另一个会话变量?然后'Session.set(Session.get('namespace')+'bar',value_for_foo_bar)' – user728291

回答

0

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

_.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); 
     } 
    } 
    } 
}); 
0

正如this所述,本地响应状态将成为Meteor UI的一部分,我们可以预计Meteor 1.0将于2014年初发布。现在,我只使用长会话变量名称。