Рендеринг подчеркивания переменных в Jade
Я включил ресурсы, описанные в этом билете, и переменные Underscore работают, кроме случаев, когда они внутри тегов. Я не могу получить переменные для рендеринга внутри динамических тегов data-id=someid
за то, что делаешь onClick
с событиями Backbone.
В стандартном HTML:
<script type="text/template" id="template-action1-thing">
<tr>
<td class="action-td" style="width: 10%;">
<button id="do-remove" data-id="<%= obj.id %>">X</button>
</td>
</tr>
</script>
С (Scalate) Jade, который не работает:
script(id='template-action1-thing' type='text/template')
p <%= obj.id %> Will render
tr
td.action-td(style='width: 10%;')
button(id='do-remove' data-id='<%= obj.id %>')
| X
Если я сделаю это, фактический HTML- рендеринг с переменной правильно, хотя и неправильно:
tr td(style='width: 10%;') button(id='do-remove_thing' data-id='myid') X
С шаблоном вроде:
script(id='template-action1-thing' type='text/template')
| td.action-td(style='width: 10%;')
| button(id='do-remove_thing' data-id='<%= obj.id %>') X
3 ответа
Если вы хотите использовать шаблон подчеркивания в jade, вам нужно изменить шаблон так, чтобы он выглядел следующим образом:
script(id='template-action1-thing' type='text/template')
| <tr>
| <td class="action-td" style="width: 10%;">
| <button id="do-remove" data-id="<%= obj.id %>">X</button>
| </td>
| </tr>
Или вы можете посмотреть на использование шаблонов Jade вместо шаблонов подчеркивания.
Я знаю, что на этот вопрос уже был дан ответ, но в поисках более красноречивого решения я обнаружил, что это также работает:
script(type='text/html', id='tpl-name')
h3!='<%= foo %>'
p!='<%= bar %>'
Это позволяет вам продолжать использовать синтаксис Jade.
Теперь мы можем использовать script.
вставить блок простого текста, как описано здесь: http://jade-lang.com/reference/plain-text/.
script(id='template-action1-thing' type='text/template').
<tr>
<td class="action-td" style="width: 10%;">
<button id="do-remove" data-id="<%= obj.id %>">X</button>
</td>
</tr>