1

アンダースコアテンプレートでバックボーンを使用しています。if()コードに次のようなJavaScript条件があります。

<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

printJavaScriptコード内から使用することもできます。これは、を使用するよりも便利な場合があります<%= ... %>

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 に答える