在Meteor中,我在会话中添加了一个字符串,但它变成了双重引用。
var answer = submission[1];
console.log(answer); // C
var obj = {question: answer};
console.log(obj); // Object {question: "C"}
Session.set(1, answer);
console.log(Session.keys); // Object {1: ""C""}
从服务器控制台查看时,它显示如下:
{ '1': '"C"'}
我希望Object {1: "C"}
代替Object {1: ""C""}
或{ '1': '"C"'}
。 为什么会这样?如何删除双引号?
答案 0 :(得分:1)
您可以使用EJSON.parse(theString)
删除引号。如果您想要所有Session
值的当前状态的快照,您可以执行以下操作:
var currentSession = {};
_.each(Session.keys, function(value, key) {
currentSession[key] = EJSON.parse(value);
});
请注意,Session.keys
不被动。您还应该不直接编辑Session.keys
,因为它不会触发因为它们应该发生的反应性更新,并且它会将依赖关系留在内存中,如果您使用{ {1}}而是。因此,无论何时需要反应,都应使用Session.set
,并且只要您想编辑数据,就应使用Session.get
。