Поддерживает ли 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 (другой компонент) на компоненте страницы.
Вы также можете имитировать иерархию, создав шаблон страницы, который включает верхний / нижний колонтитул, а затем конкретный шаблон содержимого на основе переданного свойства.