2017-08-10 10 views
0

Ich bin über ein Array-Objekt mit express-handlebars iterieren und nur jedes zweite dom-Element, das erstellt wird, sollte ein bestimmtes Attribut haben.Benutzerdefinierte Express-Lenker Wenn Helfer

Etwas wie folgt aus:

<div class=""></div> 
<div></div> 
<div class=""></div> 
<div></div> 

Ich bemerkte, dass es einen @size Wert, der den Index der Iteration enthält.

Mein Code so weit sieht wie folgen aus:

{{#each todoGroups}} 
     {{#if @index}} 
      <div class=""></div> 
     {{/if}} 
{{/each}} 

Aber wie kann ich eine Bedingung für die if-Anweisung, die für jedes zweites Element an true wertet nur?

Ich bin fest versuchen, diese Funktionalität zu implementieren dies mein Ansatz ist so weit:

function hbsHelpers(hbs) { 
    return hbs.create({ 
    helpers: { // This was missing 
     isEven: function(value, options) { 

     }, 

     // More helpers... 
    }, 

    }); 
} 

Antwort

0

Lenker leider auf diese Dinge ziemlich schlecht ist, und ich glaube, Sie brauchen einige benutzerdefinierte Helfer wie die, die Sie tun sind dabei.

würde ich vorschlagen, Ihre eigenen Block-Helfer zu schreiben, die drei Argumente und führt die grundlegenden logischen Prüfungen nimmt (als wie und, oder, größer als, kleiner, Modul), so etwas wie:

{{#ifCond varOne "%" 2}} 
{{/ifCond}} 

Und die ifCond-Helper-Implementierung hat einen Switch-Fall, um verschiedene Operatoren zu behandeln.

Verwandte Themen