1

我正在使用带有下划线模板的 Backbone。我的代码中有一个 JavaScriptif()条件,如下所示:

<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 可以内联输出吗?

4

1 回答 1

7

有几个选项,您可以使用<%= %>和三元:

<%= somevalue == true ? 'your face' : 'my face' %>

或者你可以使用print

您也可以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).

于 2012-01-07T02:48:34.847 回答