Wie machen die Jade stop-HTML-Codierung element-Attribute und erzeugen ein literaler string-Wert?

UPDATE Jade v0.24.0 behebt dies mit einem != syntax für Attribute. option(value!='<%= id %>')


Ich versuche zu bauen, ein <option> mit jade, wo der Wert der option ist eine UnderscoreJS template-marker: <%= id %> aber ich kann nicht ankommen es zu wirken, denn jade ist die Konvertierung meiner markentext &lt;= id &gt;.

Hier mein Jade-markup:

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

Ich erwarte, dass es zu produzieren diese html:

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

Aber was ich stattdessen bekommen, ist diese:

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

Beachten Sie den feinen Unterschied in der <option> Zeile der Ausgabe... der value - Attribut des option-HTML-codiert.

Wie kann ich verhindern, dass Jade von HTML-Kodierung dieser Wert? Ich brauche es zum herstellen der Literale Wert, die gleiche Weise mit dem text der option.

InformationsquelleAutor der Frage Derick Bailey | 2012-04-11

Schreibe einen Kommentar