我正在使用Backbone和Underscore模板。我的代码中有一个JavaScript if()
条件,如下所示:
<div class='faces'>
<% if(somevalue === true) { %>
your face
<% } else { %>
my face
<% } %>
</div>
但是我发现这种语法很尴尬,我真的想使用类似下面的内容,即使它实际上不起作用(用文本替换整个文档):
<div class='faces'>
<% if(somevalue === true) {
document.write("your face");
} else {
document.write("my face");
}
</div>
我希望在模板中输出字符串的确切位置。对于输出一个简单的变量,EJS(和下划线)具有很好的
语法<%= somevalue %>
=
是document.write()
进入模板的关键部分。我正在努力实现的目标是什么? JavaScript可以内联输出吗?
答案 0 :(得分:7)
有几个选项,您可以使用<%= %>
和三元:
<%= somevalue == true ? 'your face' : 'my face' %>
或者您可以使用print
:
您还可以在JavaScript代码中使用
<%= ... %>
更方便。var compiled = _.template("<% print('Hello ' + epithet); %>"); compiled({epithet: "stooge"}); => "Hello stooge."
所以你可以这样做:
<% if(somevalue == true) {
print("your face");
} else {
print("my face");
} %>
我假设if(somevalue = true)
是拼写错误,应该是if(somevalue == true)
。