ERRORE: impossibile applicare $ Modificatore di spinta a non array in Meteorjs

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

  •  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.

È stato utile?

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
scroll top