javascript - 使用嵌入式 Javascript 语法直接输出到模板

标签 javascript backbone.js underscore.js underscore.js-templating

我正在使用带有 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 print from within JavaScript code. This is sometimes more convenient than using <%= ... %>.

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/

相关文章:

javascript - 在 VS Code 中调试时从 Promise 中的拒绝中获取未处理的异常

javascript - 如何使用jquery优化页面加载

javascript - Backbone js 如何与 css 选择器交互?

javascript - 在下拉菜单中输入字符时,它会从选项中选择任何随机匹配项并触发更改事件

javascript - 根据数组中的位置从数组中获取代表元素

javascript - 如何在当前表中添加数据表

node.js - 手动更改路由后 mediator.user 丢失

javascript - 带参数的下划线去抖动

javascript - 可以从 require 模块调用下划线反跳吗?

c# - 单击鼠标悬停