我认为我可能会遗漏一些东西。我已经将用户的产品订单表格的全部内容存储在会话变量中。
var orderFormContents = {
numDoors: 4
numWheels: 4
numSeats: 5
};
Session.set("orderFormContentsSessionVar", orderFormContents);
如何更新orderFormContentsSessionVar
中仅一个键的值,例如numDoors
?
我不想覆盖会话var。
的整个现有内容我希望能够做到这样的事情:
Session.set("orderFormContentsSessionVar.numDoors", 2);
相当于_.extend
更新
按照下面的答案示例,我刚刚为它编写了一个函数:
var updateSession = function(sessionVarName, updateParams){
var obj = Session.get(sessionVarName);
_.extend(obj, updateParams);
Session.set(sessionVarName, obj);
console.log("updated session name: ", sessionVarName, "new session contents: ", Session.get(sessionVarName));
};
答案 0 :(得分:2)
像你提议的那样使用:
var obj = Session.get("orderFormContentSessionVar");
Session.set("orderFormContentsSessionVar", _.extend(obj, {numDoors: 2}));
答案 1 :(得分:0)
_.extend
应该可以正常工作。
Session.set( "orderFormContentsSessionVar",
_.extend(Session.get("orderFormContentsSessionVar"), { numSeats: 10 }) )
我怀疑还有其他办法。