2013-04-28 4 views
4

Я хотел бы добавить шаблон с именем на основе переменной.Jade include template на основе переменной

Нечто подобное:

include= templateName

+0

Возможный дубликат [Использовать переменную в Jade include] (http://stackoverflow.com/questions/12132978/use-a-variable-in-a-jade-include) – Pickels

+2

Это невозможно в шаблоне потому что шаблоны компилируются до того, как они даже узнают о том, какие данные вы передаете им. – Pickels

+0

ОК спасибо, я буду использовать if/else then ... – Charles

ответ

1

решаю с футляром/когда, как переключатель/случай:

case myvar 
    when 0 
     include mytemplate0 
    when 1 
     include mytemplate1 
    .... 
    default 
     p Select option 
0

Существует очень хорошая причина, это не работает в Джейд. Jade компилирует шаблоны в Javascript, затем выполняет Javascript для создания HTML. Включенные должны обрабатываться на этапе компиляции, но выражения Javascript не оцениваются до более позднего времени. Поэтому в настоящее время Jade не может предлагать переменные.

Решение carlituxman работает, потому что оно включает в себя все необходимые файлы include в сгенерированном Javascript, но ограничивается включением файлов, которые вы знаете заранее.

Смежные вопросы