2014-11-27 2 views
2

Используя сборку и рулевую панель, можно ли разбить страницу на именованные разделы и добавить каждый раздел в область родительского макета? Очень похоже на то, как Asp.net MVC выполняет @section IM_A_SECTION {}, а затем @RenderSection («IM_A_SECTION»).Соберите страницу с несколькими именованными разделами

Page.hbs будет выглядеть

--- 
layout: layout.hbs 
--- 
{{#content "head"}} 
    Header stuff goes here 
{{/content}} 
{{#content "body"}} 
    Body stuff goes here 
{{/content}} 

И layout.hbs будет

<html> 
    <head> 
     {{>head}} 
    </head> 
    <body> 
     {{>body}} 
    </body> 
</html> 

я могу получить что-то вроде этого, чтобы работать, используя рули в Nodejs, но не собрать.

Edit:

на основе doowb отвечают на следующий решает выше.

Page.hbs:

{{#extend "layout"}} 
    {{#content "head"}} 
     Header stuff goes here 
    {{/content}} 
    {{#content "body"}} 
     Body stuff goes here 
    {{/content}} 
{{/extend}} 

И layout.hbs:

<html> 
    <head> 
     {{#block "head"}}{{/block}} 
     </head> 
    </head> 
    <body> 
     {{#block "body"}}{{/block}} 
    </body> 
</html> 

И в gruntfile.js, в задаче сборки, добавьте папку макета в списке папок обертоны.

assemble: { 
    options: { 
     partials: ['src/partials/**/*.hbs', 'src/layouts/**/*.hbs'] 
    } 
} 

Надеюсь, что кто-то найдет это полезным.

ответ

1

Взгляните на этот вопрос: Assemble: Multiple points of content insertion in layout?

Он содержит информацию о том, как использовать вспомогательные макеты в сборке v0.4.x. Они все равно будут доступны в сборке v0.6.0, но мы хотели бы иметь возможность поддерживать больше возможностей для встроенных макетов.

+0

Спасибо, что сделал. Странно, что это отсутствует в официальной документации Assemble, это полезная функциональность. –

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