2012-01-27 2 views
1

Джейд шаблон наследования в Джейд сводит меня с ума ...Джейд шаблон наследования

Проблема заключается в том, что я хотел бы, чтобы исключить большой кусок кода для внешнего шаблона, а затем включить его. Когда я делаю это все получает F ** вверх:/

Пример кода:

!!!5 
html(lang="en") 
    head 
    title sample title 
    body 
    header 
     div#someDiv 
     div#someContent 
      section#main 

Скажем, я хочу, чтобы исключить все сверху div#someContent. Тогда я бы

include inc/header 
      section#main 

Таким образом, код отступы идет не так, и все смешалось:/Можете ли вы указать мне правильное направление в том числе шаблоны?

Заранее благодарен!

ответ

4

Это не наследование шаблонов, но включает (наследование шаблона с ключевыми словами block и extends). Я пробовал ваш код, и что он делает с include, вставляет «section # main» в «div # someDiv» вместо «div # someContent». Не уверен, следует ли это считать ошибкой или каким (как может парсер знать, должен ли добавленный контент находиться внутри последнего элемента в включенном файле или на том же уровне?). Кажется, он не заботится об уровне отступов в выражении «включить».

Однако, если вы используете наследование шаблонов, вы можете поставить пустой блок в конце вашего включают:

!!!5 
html(lang="en") 
    head 
     title sample title 
    body 
     header 
      div#someDiv 
       div#someContent 
        block content 

Затем вы можете добавить блок в Вашем загружаемом файле:

include inc/header 
    block append content 
     section#main 

И это делает ОК в DOM (раздел # main находится внутри div # someContent). В зависимости от структуры ваших представлений вам может быть лучше с «extends» вместо «include + block append». Вы можете проверить Jade's GitHub doc за подробностями.

+0

Ссылка на документацию GitHub мертва. – sjy

+0

Теперь выглядит хорошо. Может быть, github был вниз, когда вы пытались. – mna

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