2016-08-16 75 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