2017-01-16 1 views
0

J'utilise le modèle Moustache pour rendre mes données. J'ai un champ de date "researchdate" et je veux un rendu conditionnel, il ne doit restituer que l'étiquette d'ancrage si la date de recherche n'est pas vide et est 2 semaines plus vieux ou plus.Moustache si condition sur le champ date

{{#if researchDate}} 
      <a href="/test" class="some-class" title="my title">R</a> 
     {{/if}} 

Ici, je peux vérifier si la date est vide ou non, mais comment puis-je vérifier si elle a 2 semaines de plus ou pas?

Répondre

0

MoustacheJS est un système de template sans logique (ces mots sont plâtrés sur sa page github ...). Votre approche ne peut pas être faite. Vous avez deux options ...

Option 1

Render Seule la vue si l'objet de critères littéral est remplie.

var renderBool = ($(a.researchDate).val() !== null)?true:false; 
if (renderBool){ 
    mustache.render(...); 
} 

Option 2

En supposant que vous utilisez JS saveur de Mustache, vous pouvez utiliser jQuery pour cacher la vue jusqu'à ce que le critère est rempli. Cela sera fait immédiatement après vous avez rendu votre vue.

var $researchDate = $(a.researchDate); 
if (!$researchDate.val()){ 
    $researchDate.hide(); 
} 

Ce qui précède n'est pas un sujet de copier/coller. Vous devez ajouter une classe/ID à votre balise d'ancrage dans la vue. Cette réponse suppose également que vous utilisez JavaScript flavour de MoustacheJS qui a une dépendance sur jQuery.