Mik*_*rko 1 javascript backbone.js underscore.js underscore.js-templating
我正在使用Backbone和Underscore模板.if()我的代码中有一个JavaScript 条件,如下所示:
<div class='faces'>
<% if(somevalue === true) { %>
your face
<% } else { %>
my face
<% } %>
</div>
Run Code Online (Sandbox Code Playgroud)
但是我发现这个语法很尴尬,我真的想使用类似下面的东西,即使它实际上不起作用(用文本替换整个文档):
<div class='faces'>
<% if(somevalue === true) {
document.write("your face");
} else {
document.write("my face");
}
</div>
Run Code Online (Sandbox Code Playgroud)
我希望在模板中输出字符串的确切位置.对于输出一个简单的变量EJS(和下划线)有一个很好的语法
<%= somevalue %>
Run Code Online (Sandbox Code Playgroud)
其中的=关键部分是document.write()模板中的关键部分.我正在努力实现的目标是什么?JavaScript输出内联吗?
有几个选项,你可以使用<%= %>和三元组:
<%= somevalue == true ? 'your face' : 'my face' %>
Run Code Online (Sandbox Code Playgroud)
或者您可以使用print:
您也可以
<%= ... %>.Run Code Online (Sandbox Code Playgroud)var compiled = _.template("<% print('Hello ' + epithet); %>"); compiled({epithet: "stooge"}); => "Hello stooge."
所以你可以这样做:
<% if(somevalue == true) {
print("your face");
} else {
print("my face");
} %>
Run Code Online (Sandbox Code Playgroud)
我认为这if(somevalue = true)是一个错字,应该是if(somevalue == true).