Erreur: impossible d'appliquer $ modificateur de poussée à la non-tableau dans Meteorjs

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

  •  13-12-2019
  •  | 
  •  

Question

Ceci est une fonction pour ajouter un dictionnaire sous forme de subitem d'un document principal.

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

Je vérifie les données passées et sont un identifiant de document principal valide une donnée sous-couche.

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

Cela fonctionne bien hier avec la dernière version de Meteor (0.4.2), mais aujourd'hui, je reçois ce message à la console JavaScript:

Error: Cannot apply $push modifier to non-array

J'ai créé et configurez un nouveau projet et j'ai toujours la même chose.

Était-ce utile?

La solution

Merci à Lloyd, de bonne solution de contournement et merci pour le cours d'accident de JavaScript (je suis un débutant dessus), mais j'ai trouvé la solution: (Notez la "$ push")

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

Autres conseils

Essayez ceci:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top