2017-06-22 6 views
0

Ich habe eine ejs Vorlage als:nodej ejs bedingte Variablendeklaration

<div id="id1"> 
do something 
</div> 
<div id="id2"> 
do something 
</div> 

Der Wert von id aus dem Backend node.js Code entschieden wird. Daher unterscheidet sich der Wert id von verschiedenen Werten bestimmter Variablen, die vom Backend gerendert werden. Ich versuche if-else Fall zu verwenden, wie:

<% if(backendvalue== "F"){ %> 
    var id1 = "F"; 
    var id2 = "A"; 


<% } else if (backendvalue == "N") { %> 
    var id1 = "N"; 
    var id2 = "B"; 

<% } %> 

und verwenden Sie die oben angegebenen Variablen wie:

<div id="<%= id1%>"> 
    do something 
</div> 
<div id="<%= id2%>"> 
    do something 
</div> 

Aber ich bin immer Fehler wie id1 nicht definiert. Gibt es irgendeine Möglichkeit, dieses Problem zu lösen, da ich 4 solche Variablen und 3 verschiedene Bedingungen und viel HTML Code habe, der von diesen Variablen abhängt.

Antwort

0

Der Zuordnungsprozess ähnelt der Verwendung der Variablen, die vom Back-End übergeben wird. Sie müssen nur das = Symbol entfernen, wie:

<% v1= "value1"%> 

Der Wert von v1 jetzt Wert1 und kann innerhalb der ejs wie überall eingesetzt werden:

<%= v1%> 
0

Der Fehler macht Sinn, weil Sie den Geltungsbereich auf die if {} beschränkt sind.

Entfernen Sie einfach die var, sie werden dann global.

<% if(backendvalue== "F"){ %> 
    id1 = "F"; 
    id2 = "A"; 


<% } else if (backendvalue == "N") { %> 
    id1 = "N"; 
    id2 = "B"; 

<% } %>