Meteor Helper Vérifiez l'égalité

Existe-t-il un moyen de vérifier la valeur d'une chaîne dans l'aide météorique?

Disons que j'ai cette aide

Template.example.helpers({ typeOfVideo:function(videoType){ var videoLink = GS.Gems.Collections.Gems.findOne({_id:this._id}).videoLink; if(videoLink.match(/youtube\.com/)){ return "youtube"; }else if(videoLink.match(/vimeo\.com/)){ return "vimeo"; }else{ return "undefined" } } }) 

Maintenant, je veux vérifier si la vidéo est égale à Youtube, Vimeo ou indéfini, je pourrais le faire en renvoyant vrai / faux, mais comme il y a plus, je veux savoir quel type de vidéo je suis en train de traiter

Déjà essayer avec

 {{#if typeOfVideo=youtube}} <!-- also {{#if typeOfVideo 'youtube'}} youtube {{/if}} {{#if typeOfVideo=vimeo}} vimeo {{/if}} 

Et les modèles donnent toute la valeur (youtube, vimeo), me manque-t-il quelque chose?

À mesure que les barrières spatiales (système de modélisation des météorites) est un système de modélisation "sans logique" (comme les barres de guidage sur lesquelles il est basé), vous ne pouvez pas vérifier directement une égalité dans une instruction if .

Mais vous pouvez créer un assistant global avec deux paramètres pour vérifier une égalité de chaîne ou une chaîne correspondante comme ceci:

 Template.registerHelper('isEqual', function(string, target) { if( string.match( new RegExp(target, 'g') ) ) { return true; } return false; }); 

Et utilisez-le dans votre modèle comme ceci:

 {{#if isEqual videoLink 'youtube'}} <p>Youtube</p> {{else}} <p>Vimeo</p> {{/if}} 

Il n'y a pas d' else if dans les barrières spatiales, donc si vous avez plusieurs cas pour vérifier, cela peut être un problème. Mais vous pourriez penser à injecter le modèle / le contenu directement à partir de l'assistant global si possible.