Ошибка: не может применить модификатор $ push в нерасина в meteorjs
-
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);
}
};
. Не связан с StackOverflow