ERRORE: impossibile applicare $ Modificatore di spinta a non array in Meteorjs
-
13-12-2019 - |
Domanda
Questa è una funzione per aggiungere un dizionario come sottotitolo di un documento principale.
addSubItem = function(id, data) {
s = Item.findOne(id);
if(s){
Item.update({_id:id},{$push:{'subItemsList':data}});
}
};
.
Verifico i dati passati e sono un documento principale valido ID un documento di subitem.
data = {num:1, value: 'Subitem1'};
.
Questo funziona bene ieri con l'ultima versione di Meteor (0.4.2), ma oggi ricevo questo messaggio su JavaScript Console:
Error: Cannot apply $push modifier to non-array
.
Ho creato e configurando un nuovo progetto e ho ancora lo stesso.
Soluzione
Grazie a Lloyd, bella soluzione alternativa e grazie per il corso di incidente JavaScript (sono un Beginer su di esso), ma ho trovato la soluzione: (Nota la "$ Push")
addSubItem = function(id, data) {
s = Item.findOne(id);
if(s){
Item.update({_id:id},{"$push":{'subItemsList':data}});
}
};
. Altri suggerimenti
Prova questo:
addSubItem = function(id, data) {
s = Item.findOne(id);
if(s){
s.subItemsList = s.subItemsList || [];
s.subItemsList.push(data);
Item.update(id, s);
}
};
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow