使用嵌入式 Javascript 语法直接输出到模板
我正在使用 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 可以内联输出吗?
I'm using Backbone with Underscore templates. I have a JavaScript if()
condition in my code that looks something like this:
<div class='faces'>
<% if(somevalue === true) { %>
your face
<% } else { %>
my face
<% } %>
</div>
However I find this syntax awkward and I really would like to use something like the following, even though it doesn't actually work (replaces entire document with the text):
<div class='faces'>
<% if(somevalue === true) {
document.write("your face");
} else {
document.write("my face");
}
</div>
I want the string to be output in the template exactly where it is called. For outputting a simple variable EJS (and underscore) have a great syntax of
<%= somevalue %>
Where the =
is the critical part that document.write()
s it out into the template. Is what I'm trying to accomplish possible? Can JavaScript output inline?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有几个选项,您可以使用
<%= %>
和三元:或者您可以使用
打印
:所以你可以这样做:
我假设
if(somevalue = true)
是一个拼写错误,应该是if(somevalue == true)
。There are a few options, you could use
<%= %>
and a ternary:or you could use
print
:so you could do this:
I'm assuming that
if(somevalue = true)
is a typo and should beif(somevalue == true)
.