2012-05-23 2 views
1

Думаю, мой запрос был ясен из самого заголовка. Как связать строки url с атрибутами href при рендеринге в шаблонах ejs? Существуют ли какие-либо помощники для этой задачи? Я думал о преобразовании URL-адресов в строки прямо со своими атрибутами href и затем отправлять их в шаблоны, но я думаю, что они будут экранированы при рендеринге.link urls in templates-nodejs

Несмотря на то, что я использую ejs для просмотра. Я хочу изменить механизм шаблонов, если у кого-либо есть это средство связывания.

Update:

предположить, что это функция визуализации

return res.render("polo", { 
        title: "Posters", 
        has_next:false, 
        posters:posters, 
        offset:0 
       }); 

и здесь является мнение

<% for (var i=0;i<posters.length;i++) { %> 

       <div id="<%=posters[i]._id %>" class="newstitle"> 

       <p> 
       <%=posters[i].body %> 
      </p> 
      </div> 

<% }; %> 

Теперь, если плакаты [1] .Body = "Привет, это хороший сайт www.google.com ". Аналогично, каждый другой элемент в плакатном массиве представляет собой текст, содержащий некоторые URL-адреса. когда плакаты [i] .body визуализируются, я хочу, чтобы URL-адреса, подобные «google.com» в приведенном выше примере, были связаны. Я не могу использовать <% = url%>, потому что я не знаю, где именно URL-адрес внутри плаката.

ответ

0

Если вы хотите выводить на атрибут href без экранирования, вы можете использовать <a href="<%- yourvar %>">the link.</a>, и он не ускользнет.

(Примечание, использование дефиса вместо знака равенства.)

Редактировать

OP спросил, как только отображать ссылку, когда URL определен.

<% if (typeof yourvar != 'undefined' && yourvar !== null) { %> 
    <a href="<%- yourvar %>">the link</a> 
<% } %> 
+0

Предположим, у меня есть текст, который может содержать или не содержать URL-адрес, тогда я не могу применить этот метод, так как я не знаю заранее, где находится URL-адрес в тексте. Как мне это сделать? –

+0

Позвольте мне прямо сказать: вы не хотите показывать какие-либо ссылки, если бы тело текста не было определено? –

+0

@KamalReddy, я сделал обновление для ответа. Надеюсь, он ответит на ваш вопрос. –