UPDATE Jade v0.24.0 исправляет это с помощью синтаксиса !=
для атрибутов. option(value!='<%= id %>')
Как заставить Jade останавливать атрибуты элементов HTML-кодировки и выдавать буквальное строковое значение?
Я пытаюсь построить <option>
с нефритом, где стоимость опциона является UnderscoreJS шаблон маркера: <%= id %>
, но я не могу заставить его работать, потому что нефрит преобразования мой маркер текста в <= id >
,
Вот мой Джейд разметки:
script(id="my-template", type="text/template")
select(id="type")
<% _.each(deviceTypes, function(type){ %>
option(value='<%= type.id %>') <%= type.name %>
<% }) %>
Я ожидаю, что производить этот 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="<%= type.id %>"> <%= type.name %> </option>
<% }) %>
</select>
</script>
Обратите внимание на очень тонкая разница в линии вывода <option>
... атрибут tон был закодирован в HTML.
Как предотвратить Jade от HTML, кодирующего это значение? Мне нужно, чтобы оно выдавало буквальное значение, так же, как и с текстом опции.
У меня недавно была такая же проблема с настройкой значений атрибутов с помощью Underscore и была найдена работа. Не супер-симпатичный, но это лучше, чем использование необработанного HTML. –