Как заставить Jade остановить атрибуты элементов кодирования HTML и создать буквальное строковое значение?

ОБНОВЛЕНИЕ Jade v0.24.0 исправляет это с помощью синтаксиса !=для атрибутов.option(value!='<%= id %>')


Я пытаюсь создать <option>с помощью jade, где значением параметра является маркер шаблона UnderscoreJS :<%= id %>, но я не могу заставить его работать, потому что jade преобразует текст моего маркера в &lt;= id &gt;.

Вот моя разметка Jade:

script(id="my-template", type="text/template")
  select(id="type")
    &lt;% _.each(deviceTypes, function(type){ %>
    option(value='&lt;%= type.id %>') <%= type.name %>
    &lt;% }) %>

Я ожидаю, что она создаст этот html:

<script id="my-template" type="text/template">
  <select id='type'>
    <% _.each(deviceTypes, function(type){ %>
    <option value="<%= type.id %>"> <%= type.name %> </option>
    <% }) %>
  </select>
</script>

Но вместо этого я получаю вот это:

<script id="my-template" type="text/template">
  <select id='type'>
    <% _.each(deviceTypes, function(type){ %>
    <option value="&lt;%= type.id %&gt;"> <%= type.name %> </option>
    <% }) %>
  </select>
</script>

Обратите внимание на очень тонкую разницу в строке <option>вывода... valueатрибут опции был закодирован в формате HTML.

Как запретить Jade кодировать это значение в HTML? Мне нужно, чтобы он выдавал буквальное значение, так же, как и с текстом опции.

37
задан user3335966 31 August 2015 в 11:27
поделиться