Spacebars et Helper (Condition {{#if}})
Bonjour à toutes et à tous,
je travaille actuellement sur un projet en temps réel avec Node.js, et pour faciliter un peu le développement et ne pas réinventer la roue j'ai décidé de travailler avec Meteor. Mais ces derniers temps je galère trop avec une partie du code en fait j'ai ma collection sous Mongo qui se compose des fields suivants : id_oracle , libelle , montant , nbt , region et etat.
Dans mon template manager j'ai créer un helper pour créer un tableau distinct de région.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Template.test.helpers({
//on attribue à la variable regionObject la liste des regions
//comme Meteor ne supporte pas le fonction distinct dans MongoDB, on a contourné cette requête
//afin d'obtenir la valeur des regions distincte à l'aide de la librairie underscore.js
'regionObject': function(){
var data = BdPdv.find().fetch();
var distinctData = _.uniq(data,false, function(d){return d.region});
return _.pluck(distinctData, "region");
},
'isRegion': function(){
},
'listPdv': function(region){
allPdv = BdPdv.find().fetch();
return allPdv;
}
}); |
Voila j'aimerai afficher pour chaque région la liste des points de ventes, voici mon template.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| <template name="test">
<center><img src="logo.png" alt="logo" id="logo"/></center>
<h1 id="titre1">Test</h1>
<br> <br> <br>
<table border="1" id="table1" width=60% class="panel panel-default">
<thead class="panel-heading">
<tr>
<!--Création du l'entête du tableau-->
<th>Region</th>
<th>Identifiant</th>
<th>Libellé</th>
<th>Montant</th>
<th>Nombre de transactions</th>
<th>Etat</th>
</tr>
</thead>
<tbody>
<!--on va boucler sur la variable allListObjects qui contiendra tout les documents de la collection-->
<!-- on utilise spacebars : langage de template pour Meteor similaire a Handlebars-->
{{#each regionObject}}
<tr id="tr{{id_oracle}}">
<td classe='region' style="bold">{{this}}</td>
<td classe='id_oracle' style="background-color : grey"></td>
<td classe='libelle' style="background-color : grey"></td>
<td classe='montant'></td>
<td classe='nbt'></td>
<td classe='etat' id="etat" style="background-color : grey"> </td>
</tr>
{{#each listPdv}}
{{#if isRegion}}
<tr id="tr{{id_oracle}}">
<td classe='region' style="background-color : grey"></td>
<td classe='id_oracle'>{{id_oracle}}</td>
<td classe='libelle'>{{libelle}}</td>
<td classe='montant'>{{montant}}</td>
<td classe='nbt'>{{nbt}}</td>
<td classe='etat' id="etat" style="background-color : {{etat}}"> </td>
</tr>
{{/if}}
{{/each}}
{{/each}}
</tbody>
</table>
<center>
</center>
</template> |
Je galère à définir la condition {{#if}} dans le template , j'ai donc créer dans le Helper "isRegion" pour définir cette condition mais je ne sais pas comment récupérer le region courante et le pdv.region courante depuis le template.
Merci d'avance pour votre aide.