我不能让一个简单的switch语句中我下划线模板工作。 它的使用,我已经检查通过用<(%)=用户类型%>显示它存在的变量称为的UserType的值。
代码上来:
<% switch(UserType) { %>
<% case 13: %>
<button id="schoolButton" value="schools" class="gridChooser k-textbox">Schools</button>
<% case 12: %>
<button id="teacherButton" value="teachers" class="gridChooser k-textbox">Teacher</button>
<% case 8: %>
<button id="classButton" value="classes" class="gridChooser k-textbox">Classes</button>
<button id="testButton" value="tests" class="gridChooser k-textbox">Test</button>
<% } %>
任何帮助非常赞赏 - 感谢。
问题是,你的模板转换为JavaScript时下划线将增加分号终止。 所以,一个简单的switch
是这样的:
<% switch(x) { %>
<% case 11: %>
<button>
<% } %>
成为JavaScript代码如下所示:
switch(x) { ;
case 11: ;
// something to output '<button>' goes here
} ;
但一个JavaScript switch
需要包含case
语句和空语句(即;
在switch(x) { ;
不符合。
我想不出解决这个问题,任何理智的方式,所以我只希望切换到if
和转移到更有趣的问题:
<% if(UserType === 13) { %>
<button id="schoolButton" value="schools" class="gridChooser k-textbox">Schools</button>
<% } else if(UserType === 12) { %>
<button id="teacherButton" value="teachers" class="gridChooser k-textbox">Teacher</button>
<% } else if(UserType === 8) { %>
<button id="classButton" value="classes" class="gridChooser k-textbox">Classes</button>
<button id="testButton" value="tests" class="gridChooser k-textbox">Test</button>
<% } %>
你也可以把它由内而外和使用print
:
<% switch(UserType) {
case 13:
print('<button id="schoolButton" ...');
...
} %>
但是这是一个有点丑陋(恕我直言) 见_.template
文档的详细信息。
请注意,这分号权谋也是为什么你if
在一个下划线模板小号必须包括括号即使JavaScript不要求他们。 所以这是行不通的:
<% if(pancakes) %>
<%= pancakes %>
但这种意愿:
<% if(pancakes) { %>
<%= pancakes %>
<% } %>
这同样适用于循环。
你可以做:
<% switch(UserType) { case 13: %>
<button id="schoolButton" value="schools" class="gridChooser k-textbox">Schools</button>
<% break; case 12: %>
<button id="teacherButton" value="teachers" class="gridChooser k-textbox">Teacher</button>
<% break; case 8: %>
<button id="classButton" value="classes" class="gridChooser k-textbox">Classes</button>
<button id="testButton" value="tests" class="gridChooser k-textbox">Test</button>
<% break; } %>
这不是一个“舒适”的解决方案,但也不是错误的。 只是工作。