Ошибка: не может применить модификатор $ push в нерасина в meteorjs

StackOverflow https://stackoverflow.com//questions/12713018

  •  13-12-2019
  •  | 
  •  

Вопрос

Это функция, чтобы добавить словарь в качестве субтема основного документа.

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 Console:

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

Я создал и настроил новый проект, и я все еще получаю то же самое.

Это было полезно?

Решение

Благодаря Ллойде, хороший обходной путь и спасибо за коварный курс JavaScript (я на нем Putginer), но я нашел решение: (обратите внимание на «$ 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