2016-08-16 81 views
2

我正在创建一个新项目,我想命名空间的一些帮助我的视线。这些助手是“template.html文件”。目前,我正在打电话与他们的正常模式:是否有通过包含模板来分组模板?

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

我正在欣赏约悦目的事实是,我可以做这样的事情:


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 Spec

当模板位于一个单独的文件,他们可以与数据狡猾使用加载

您已在您的工作示例中对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> 

二。HTML

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

这将允许你通过一个data-sly-use表达导入所有的助手,同时保持在单独的文件的辅助模板,就像你问的,即使中介library.html不简明扼要,你可能想。

+0

我真的很希望有一个解决方案,不需要重新定义library.html中的模板。但我认为这是现在唯一的方法。我认为在这一点上完成像定义模板这样的东西在单个文件中是值得的,并且可以根据需要在这些模板中包含部分内容。然后相应地命名文件,如CommonUtils.html,JsonUtils.html等等,等等,谢谢! – Brodie