Есть ли шаблон для группировки шаблонов через включения?

Я создаю новый проект, и я бы хотел, чтобы некоторые из моих помощников назвали пространство для глаз. Этими помощниками являются "template.html файлы". В настоящее время я звоню им по обычной схеме:

<sly data-sly-use.MyHelper='MyHelper.html' data-sly-call="${MyHelper.tmpl @ args..}"/>

Что я ценю в Sightly, так это то, что я могу сделать что-то вроде этого:


templates.html

<template data-sly-template.one>1</template>
<template data-sly-template.two>2</template>

main.html

<sly data-sly-use.tmpls="templates.html"/>

one: <sly data-sly-call=${tmpls.one}/>
two <sly data-sly-call=${tmpls.two}/>

То, что я хотел бы настроить:

library.html (включает более функциональные возможности модульных шаблонов)

<sly data-sly-import="one.html"/>
<sly data-sly-import="two.html"/>

main.html (библиотека импорта)

<sly data-sly-use.libs="library.html"/>

one: <sly data-sly-call=${libs.one}/>
two <sly data-sly-call=${libs.two}/>

Я попробовал несколько вариантов последнего, чтобы увидеть, было ли уже что-то, что поддерживает OTTB. Возможно, я просто неправильно его подключил, но кто-нибудь знает, возможно ли это?

благодарю вас,

Броди

1 ответ

Решение

Из спецификации HTL:

Когда шаблоны находятся в отдельном файле, они могут быть загружены с хитрым использованием данных

Вы уже делаете это в вашем рабочем примере с data-sly-use а также data-sly-call в вашем main.html к data-sly-template в вашем template.html, Вам просто нужно сделать это еще раз в вашем library.html,

main.html (библиотека импорта)

<sly data-sly-use.libs="library.html"/>

one: <sly data-sly-call=${libs.one}/>
two <sly data-sly-call=${libs.two}/>

library.html (включает более функциональные возможности модульных шаблонов)

<template data-sly-template.one>
    <div data-sly-use.one="one.html" data-sly-call="${one.one}"></div>
</template>

<template data-sly-template.two">
    <div data-sly-use.two="two.html" data-sly-call="${two.two}"></div>
</template>

one.html

<template data-sly-template.one>this is one</template>

two.html

<template data-sly-template.two>this is two</template>

Это позволит вам импортировать всех ваших помощников через одного data-sly-use выражения, сохраняя ваши вспомогательные шаблоны в отдельных файлах, как вы и просили, даже если посредник library.html не так кратко, как вы, вероятно, хотели.

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