1

私はブログでCradlewithExpressとEJSを使用しています。たぶん私はsmthが欠けていますが、それらのいくつかはhtmlエンティティを同等のものに変換します。

doc.quoteフィールドにhtmlがあり、このコードの後に​​変更されます

quotesDb.view('list/by_date', {
    'startkey' : {},
    'endkey' : null,
    'descending' : true
}, function(err, res) {
    if (err) {
        r.send();
        return;
    }

    r.partial('quotes', {'quotes' : res}, function(err, str) {
        console.log(str);
        sendResponse('content', str);
    });
});

quotes.ejs:

<% for (var i=0; i<quotes.length; i++) { %>
    <div>
        <%=quotes[i].value.quote%>
    </div>
    <div class="date">
        <%=(new Date(quotes[i].value.ts*1000)).toLocaleDateString()%><% if (quotes[i].value.author) { %>, <%=quotes[i].value.author%><% } %>
    </div>
<% } %>

「res」変数は、「content」フィールド(htmlを持つ)を持つオブジェクトを持つ配列です。ただし、「str」をレンダリングした後、「quotes [i] .value.quote」シンボルがそのエンティティに変換されます。たとえば、<br>を&lt;に変換します。br&gt;

4

1 に答える 1

10

答えはここで見つかりました:http: //groups.google.com/group/express-js/browse_thread/thread/f488d19a1604c30e? pli = 1

エスケープを使用したレンダリングの場合:

<%=var%>

エスケープせずにレンダリングする場合:

<%-var%>
于 2011-09-14T12:25:26.117 に答える