2010-12-17 78 views

回答

6

它們彼此反相。

doLayout用作extends標記的一部分。擴展標籤指定您希望擴展哪個模板,並且doLayout標籤指定您的代碼在擴展模板中的注入位置。

include標記只是簡單地指定應在指定的點注入另一個模板。

所以,doLayout以類似的方式工作,除了doLayout標籤沒有指定要注入哪個模板。這是通過extends標籤完成的,並且意味着模板(通常包含頁眉,頁腳和常用css和javascript)可以進行擴展,而不需要了解擴展模板的任何信息。

Include,只是代碼的啞注入。

如果你想實現的doLayout功能與包括(這是你會做它在PHP或類似的東西的方式),你可以做

#{include 'header.html'} 
your template code 
#{include 'footer.html'} 

這將對每個頁面上被複制在您的模板中。而使用extendsdoLayout可以讓你簡單地做

#{extends 'template.html'} 

一個你的代碼注入到template.html通過的doLayout標籤管理。

擴展的方法是一個簡單的方法。此外,如果您決定更改頁面佈局,則只需更新一個文件,併爲內容位於擴展模板內的位置提供更大的靈活性。

4

google-group我注意到extends (doLayout), include and a tag之間的差異:

延伸,包括都差不多,差別主要在你 繞過變量

運用擴展,父模板提供了樣板路,並且孩子 模板提供了「身體」。例如,父模板可以呈現 頁眉和頁腳,並且子模板可以呈現頁面的主要內容 。通常,您可以在孩子的模板變量被讀取 和父模板如#{set title:'Pet shop' /}#{set showLoginBox:true /}

可以使用包括當你想要做一個 單親模板內同樣的事情多次應用。例如, #{include 'formStatusFields.html' /} 父模板中的變量可用於包含的模板。

如果您有一段從多個 不同的父模板執行的模板代碼,則應使用標記。您可以將變量傳遞給 標籤。例如 #{button label:'Ok', id:'ok-button'}