Closure Template 是google release 的工具Closure Tools其中之一,我會注意到這個工具是因為前端產生動態layout的需求愈來愈多,雖然已經很盡力要將邏輯與template分開,但前端跟layout的結合實在是太密切,很難說分就分,雖然要把layout獨立出來要花更多時間,但至少會更好維護,往後要換template也不用再重寫程式,本篇文章稍微紀錄一下使用心得與過程。
- 點此下載,裏面包3個檔案:
- SoyToJsSrcCompiler.jar :
- soyutils.js
- soyutils_usegoog.js
- jar檔是主要將template輸出成js檔的程式,而soyutil則是一個完整的stringBuilder,你也可以直接用這個function來使用stringBuilder。另外soyutils_suegoog只是加上了google的namespace罷了。
- template檔為XXX.soy ,附檔名一定要是soy,否則執行不會有任何結果,接下來說明template檔,以下是一個很簡單的hello world範例:
第1行的namespace 一定要先宣告,這相對應於到時候呼叫的namespace,namespace的命名接受連續的階層,例如上述宣告examples變會輸出:
[sourcecode language=”javascript”]
if (typeof examples == ‘undefined’) { var examples = {}; }
[/sourcecode]
[sourcecode language=”javascript”]
{namespace examples}
/* Says hello to the world.
*/
{template .helloWorld}
Hello world!
{/template}
[/sourcecode]
- 若宣告為examples.helloworld則會輸出[sourcecode language=”javascript”]
if (typeof examples == ‘undefined’) { var examples = {}; }
if (typeof examples.helloworld == ‘undefined’) { examples.helloworld = {}; }[/sourcecode] - 一個template(soy檔案)可以有多個不同的template,命名範例:[sourcecode language=”javascript”]
{template .helloName}
blablabla
{/template}[/sourcecode]
- 最後執行
[sourcecode language=”javascript”]java -jar SoyToJsSrcCompiler.jar –outputPathFormat simple.js simple.soy[/sourcecode]