这是一个将字典添加为主文档的子项的功能。
addSubItem = function(id, data) {
s = Item.findOne(id);
if(s){
Item.update({_id:id},{$push:{'subItemsList':data}});
}
};
我验证了传递的数据,并且是一个有效的主文档,是一个子项数据。
data = {num:1, value: 'Subitem1'};
昨天使用最新版本的meteor(0.4.2)工作正常,但今天我在javascript控制台收到此消息:
Error: Cannot apply $push modifier to non-array
我创建并设置了一个新项目,但我仍然保持不变。
答案 0 :(得分:1)
感谢劳埃德,尼斯的解决方法并感谢javascript速成课程(我是一个初学者),但我找到了解决方案:(注意“$ push”)
addSubItem = function(id, data) {
s = Item.findOne(id);
if(s){
Item.update({_id:id},{"$push":{'subItemsList':data}});
}
};
答案 1 :(得分:0)
试试这个:
addSubItem = function(id, data) {
s = Item.findOne(id);
if(s){
s.subItemsList = s.subItemsList || [];
s.subItemsList.push(data);
Item.update(id, s);
}
};