Pseudo-code ci-dessous. Ma collection de résultats comprend un sous-ensemble d'images optionnel. Ce que j'essaie de faire est de vérifier si des images existent pour un produit avant d'essayer d'accéder à une image.href à utiliser comme source d'image. Dans le cas où les images n'existent pas, elles se cassent à chaque fois. Alternativement, j'ai essayé typeof 'indéfini' et cela n'a pas fonctionné non plus.Meteor détectant l'existence d'un champ dans la collection
if (this.products) {
//return "<i class='fa fa-gift'></i>"
console.log("has products");
if (this.products[0].images) { <--- breaks
console.log("item 0 has images");
}
if (this.products.images) { <--- breaks
console.log("has images");
}
} else {
console.log("don't have products");
}
EDIT/UPDATE
Je pense que Patrick Lewis En fin de compte fourni la meilleure solution pour cela - en utilisant un opérateur ternaire hybride. Va comme:
myVar = objet & & objet.name || "foo"
ci-dessus affecterait à myVar la valeur name si l'objet existe et qu'il a un nom, ou ... il assignera un "foo" statique.
Merci pour les commentaires rapides, malheureusement aucune de ces travaillé pour moi. Ce sont deux tableaux imbriqués. Lorsqu'il y a des valeurs, c'est l'instruction d'affectation: this.products [0] .images [0] .href. Le test ci-dessous échoue lors de la vérification des images. Frustrant! –
alors vérifiez aussi les images) J'ai mis à jour ma réponse – imkost
Okay - gotcha - c'est fondamentalement exactement ce que j'ai atterri dessus. –