Поддерживает ли Google Closure Templates расширенные шаблоны

Например, я хочу, чтобы мои шаблоны страниц page1.soy, page2.soy, pagex.soy расширяли мой шаблон base.soy, который включает верхний и нижний колонтитулы.

Это поддерживается?

Это общая функциональность, например, в шаблонизаторах Django и Jinja2.

2 ответа

Конечно, попробуйте это:

{namespace sample}

/**
 * Layout
 * @param title
 * @param body
 */
{template .base}
  <html>
    <head>
      <title>{$title}</title>
    </head>
    <body>
      {$body}
    </body>
  </html>
{/template}

/**
 * Page example
 */
{template .page1}
  {call .base}
    {param title}
      Sample Title
    {/param}
    {param body}
      Sample body
    {/param}
  {/call}
{/template}

В заключение, состав более естественен, чем иерархия. То есть, иметь компонент страницы для управления верхним и нижним колонтитулом (или добавить в него верхний / нижний колонтитул). Затем вы можете установить область pageContent (другой компонент) на компоненте страницы.

Вы также можете имитировать иерархию, создав шаблон страницы, который включает верхний / нижний колонтитул, а затем конкретный шаблон содержимого на основе переданного свойства.

Другие вопросы по тегам