Отображение переменных подчеркивания в Jade

Я включил активы, описанные в этот билет, и переменные подчеркивания работают, за исключением когда внутри тегов. Я не могу получить переменные для отображения внутри динамических тегов 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 

person Community    schedule 29.11.2012    source источник
comment
Попробуйте добавить | в начало каждой строки вашего шаблона, как подсказывает эта суть.   -  person philipvr    schedule 30.11.2012


Ответы (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>

Или вы можете использовать нефритовые шаблоны вместо шаблонов подчеркивания.

person philipvr    schedule 30.11.2012
comment
О, стандартный HTML. Понятно! - person ; 30.11.2012

Я знаю, что на этот вопрос уже был дан ответ, но в поисках более красноречивого решения я обнаружил, что это также работает:

script(type='text/html', id='tpl-name')
  h3!='<%= foo %>'
  p!='<%= bar %>'

Это позволяет вам продолжать использовать синтаксис Jade.

person fiction    schedule 15.01.2013

Теперь мы можем использовать 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>
person Miaonster    schedule 12.09.2014