#node.js #express
#node.js #экспресс
Вопрос:
Я использую express.js с помощью шаблонов EJS и я пытаюсь сделать что-то вроде этого:
<%= "<a href='#'>Test</a>" %>
но он печатает это:
amp;<a href='#'amp;>Testamp;</aamp;>
как я могу печатать «безопасные для html» строки?
Ответ №1:
Вы должны использовать html-код везде и использовать теги EJS только там, где вам нужны динамические данные. Пример:
<a href='<%= user.id %>'><%= user.name %</a>
Чтобы конкретно ответить на ваш вопрос, вы можете использовать <%- "<tags_here>" %>
для вывода неэкранированных HTML-данных.
Комментарии:
1. проблема в том, что когда я делаю это: <%= partial(‘my_link’) %>, он тоже печатается таким образом
2. Ах, если вы хотите, чтобы html не экранировался, вы должны сделать это <%- partial(‘my_link’) %>
3. Нет проблем, для получения дополнительной информации о EJS проверьте репозиторий github: github.com/visionmedia/ejs
4. Вы все еще могли бы ответить на вопрос. Что, если другие придут посмотреть на этот вопрос, ожидая узнать, как печатать неэкранированные материалы?
5. есть ли что-то похожее на echo из php, что позволяет печатать данные из
<% %>
инструкции?
Ответ №2:
для необработанного выходного html в ejs вы можете использовать этот код
<%- "<a href='#'>Test</a>" %>
Ответ №3:
Это доступные параметры в соответствии с документами
- тег <% ‘Scriptlet’ для потока управления, без вывода
- <%_ Тег скриптлета ‘Пропускает пробелы’, удаляет все пробелы перед ним
- <%= Выводит значение в шаблон (экранированный HTML)
- <% — Выводит неэкранированное значение в шаблон
- <%# Тег комментария, не выполняется, не выводится
- <%% Выводит литерал ‘<%’
- %> Обычный конечный тег
- -Тег%> Trim-mode (‘переключение новой строки’), обрезает следующую новую строку
- _%> Завершающий тег ‘пропускает пробелы’, удаляет все пробелы после него
Похоже, что вам нужен параметр с номером 4