我正在使用带有 Underscore 模板的 Backbone。我的代码中有一个 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 可以内联输出吗?
最佳答案
有几个选项,您可以使用 <%= %>
和一个三元组:
<%= somevalue == true ? 'your face' : 'my face' %>
或者你可以使用 print
:
You can also use
<%= ... %>
.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)
.
关于javascript - 使用嵌入式 Javascript 语法直接输出到模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8766882/