是否有通过包含对模板进行分组的模式?

Is there a pattern for grouping templates via includes?

我正在创建一个新项目,我想为我的一些助手命名空间。这些帮手是"template.html files"。我目前正在使用以下正常模式给他们打电话:

<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。也许我只是把它挂错了,但有人知道这是否可能吗?

谢谢,

布罗迪

来自HTL Spec

When templates are located in a separate file, they can be loaded with data-sly-use

您已经在工作示例中使用 main.html 中的 data-sly-usedata-sly-call 以及 template.html 中的 data-sly-template 执行此操作。您只需要在 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 不是那么简洁如您所愿。