这是将字典添加为主文档的子项的函数。

addSubItem = function(id, data) {
  s = Item.findOne(id);
  if(s){
    Item.update({_id:id},{$push:{'subItemsList':data}});
  }
};
.

i验证数据传递,是有效的主文档ID子项数据。

data = {num:1, value: 'Subitem1'};
.

这昨天有很好的工作,最新版本的流星(0.4.2),但今天我在JavaScript控制台获取此消息:

Error: Cannot apply $push modifier to non-array
.

我创建并设置了一个新项目,我仍然得到相同的。

有帮助吗?

解决方案

感谢Lloyd,漂亮的解决方法,谢谢你的JavaScript崩溃课程(我是一个Begganer),但我找到了解决方案:(注意“$ PUSH”)

addSubItem = function(id, data) {
  s = Item.findOne(id);
  if(s){
    Item.update({_id:id},{"$push":{'subItemsList':data}});
  }
};
.

其他提示

试试:

addSubItem = function(id, data) {
  s = Item.findOne(id);
  if(s){
    s.subItemsList = s.subItemsList || [];
    s.subItemsList.push(data);
    Item.update(id, s);
  }
};
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top