如何只更改会话对象的一个​​属性?

时间:2015-11-20 15:27:20

标签: meteor

要设置会话变量,我必须使用Session.set('foo', 'sampletext')。但是,如果foo是一个对象foo: {bar: 'sample', xyz: 'text'}并且我只想更改foo.bar

,该怎么办?

1 个答案:

答案 0 :(得分:2)

Session并不支持此功能。您需要替换整个对象:

var foo = Session.get('foo');
foo.bar = 'something';
Session.set('foo', foo);

但是,Session只是ReactiveDict的一个实例,它支持这一点:

var fooDict = new ReactiveDict('foo');
fooDict.set('bar', 'something');

只要您为ReactiveDict命名,它就会在热门代码推送后继续使用,并为您提供与Session相同的好处。