2014-02-16 4 views
0

Я работаю над небольшой системой CMS как разминкой сайтов Node.js с Express, Jade и Bootstrap, и у меня возникла небольшая проблема.Передача аргументов между шаблонами Jade

Я использую для включения в различные части страницы, такие как заголовок навигации и т. Д., Чтобы сделать сайт максимально модульным. Я сделал статическую часть интерфейса администратора, а теперь начну добавлять динамику, и есть проблема.

Например, если бы я хотел создать список пользователей аккордеона с поддержкой, сейчас я должен был бы сделать следующее:

doctype html 
html 
    head 
    title= 'My Awesome Website | ' + title 
    include imports/bootstrap 
    link(rel='stylesheet', href='css/style.css') 
    body 
    include include/navbar 
    .container-fluid 
     include include/sidebar-admin 

     ul.list-user 
     each user in users 
     li.user 
      h3.user.user-header= user.name 
      //etc 

Вместо этого, я хотел бы, чтобы переместить всю Ли .user блок в отдельный файл нефрита, и сделать это:

ul.list-user 
    each user in users 
    include include/userlistitem 

Но по какой-то причине, пользовательская переменная не получает передается на включаемый. Есть ли способ принудить его к включенному файлу иметь определенную переменную или он еще не реализован?

+0

Вы бы не быть лучше использовать [подмешать] (Http: // Джейд-Ланг .com/ссылки/# Mixins)? –

+0

Миксинсов было бы неплохо, но они не будут работать, по какой-то причине, по крайней мере, на моем конце. – fonix232

ответ

0

Одно решение, которое не работает через прямой, содержит: Извлеките HTML-код в контроллер и добавьте его в экземпляр пользователя.

Пример:

в контроллере:

user.html = jade.renderFile("views/_userlistitem.jade",{name:value}); 

в JADE файле:

ul.list-user 
    each user in users 
     #{user.html} 
Смежные вопросы