Cradle / Express / EJS конвертирует html в свои объекты - PullRequest
1 голос
/ 14 сентября 2011

Я использую Cradle с Express и EJS в своем блоге.Возможно, мне не хватает чего-то, но некоторые из них преобразуют html-сущности в его эквиваленты.

У меня есть html в поле doc.quote, и после этого куска кода он меняется

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>;

1 Ответ

10 голосов
/ 14 сентября 2011

Ответ был найден здесь: http://groups.google.com/group/express-js/browse_thread/thread/f488d19a1604c30e?pli=1

<%=var%>

для рендеринга с экранированием

<%-var%>

для рендеринга без экранирования

...