2010-12-17 1 views

Antwort

6

Sie sind eine Art inverse voneinander.

doLayout wird als Teil des Tags extends verwendet. Das extends-Tag gibt an, welche Vorlage Sie erweitern möchten, und das doLayout-Tag gibt an, wo in der erweiterten Vorlage Ihr Code eingefügt wird.

Der Tag include gibt lediglich an, dass eine andere Vorlage an dem angegebenen Punkt eingefügt werden soll.

So funktioniert doLayout auf ähnliche Weise wie das Einschließen, außer dass das doLayout-Tag nicht angibt, welche Vorlage injiziert wird. Dies geschieht durch das extends-Tag und bedeutet, dass die Vorlage (die normalerweise Header, Fußzeilen und gewöhnliches CSS und JavaScript enthält) erweitert werden kann, ohne dass sie etwas über die Vorlage wissen muss, die sie erweitert.

Include, ist nur eine dumme Injektion von Code.

Wenn Sie auf jeder Seite die doLayout Funktionalität mit einschließt (und das ist die Art, wie Sie tun, wäre es in PHP oder so ähnlich), könnten Sie tun

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

Dies hätte zu replizierenden erreichen wollte in deiner Vorlage. Während mit extends und doLayout können Sie einfach

#{extends 'template.html'} 

zu tun ist und wo Sie den Code in das template.html injiziert wird, wird durch die doLayout Tag verwaltet.

Der erweiterte Ansatz ist einfach ein sauberer Weg. Wenn Sie das Layout Ihrer Seite ändern möchten, müssen Sie nur eine Datei aktualisieren und erhalten mehr Flexibilität bei der Position Ihrer Inhalte in der erweiterten Vorlage.

4

Vom google-group bemerkte ich die Unterschiede zwischen extends (doLayout), include and a tag:

erweitern und schließen sind ähnlich, der Unterschied ist vor allem in der Art und Weise, die Sie Umfahrung Variablen

Mit erweitern, die Mutter Vorlage der vorformulierten bieten und das Kind Vorlage stellt den "Körper" zur Verfügung. Beispielsweise könnte die übergeordnete Vorlage eine Kopf- und Fußzeile wiedergeben, und die unterordnete Vorlage könnte den Hauptinhalt der Seite rendern. Sie in der Regel Variablen in der Kind-Vorlage festlegen, die und angewendet in der übergeordneten Vorlage zB #{set title:'Pet shop' /} oder #{set showLoginBox:true /}

Sie umfassen verwenden gelesen werden, wenn Sie die gleiche Sache mehrmals innerhalb einer alleinerziehende Mutter Vorlage tun wollen. Zum Beispiel #{include 'formStatusFields.html' /} Die Variablen in der übergeordneten Vorlage sind für die enthaltene Vorlage verfügbar.

Wenn Sie einen Vorlagencode haben, der von mehreren verschiedenen übergeordneten Vorlagen ausgeführt wird, sollten Sie ein Tag verwenden. Sie können Variablen an ein Tag übergeben. zB #{button label:'Ok', id:'ok-button'}

Verwandte Themen