Haml Rendern mehrerer Teiltöne in layout
Wie kann ich den code Einrücken, richtig?
app/views/layouts/shared.html-Code.haml:
= render :partial => "shared/head"
= yield
= render :partial => "shared/footer"
app/views/shared/_head.html-Code.haml:
!!!XML
!!!1.1
%html{"xml:lang" => "pl", :xmlns => "http://www.w3.org/1999/xhtml"}
%head
%title
some title
%body
.container
app/views/shared/index.html-Code.haml:
%p
Hello World!
app/views/shared/_footer.html-Code.haml:
.footer
Some copyright text
Gerenderten HTML-Ausgabe:
<!DOCTYPE html>
<html xml:lang='pl' xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>
some title
</title>
</head>
<body>
<div class='container'></div>
</body>
</html>
<p>
Hello World!
</p>
<div id='footer'>
Some copyright text
</div>
Sehr gut artikuliert Frage.
InformationsquelleAutor astropanic | 2010-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie verwenden
app/views/layout
für dass undyield
den eigentlichen Inhalt:Beispiel
Update
app/views/layout/shared.html.haml
:layouts sind genau für Ihr problem, wenn Sie mehrere layouts mit demselben subcontent Rendern dieser Teil aus der gemeinsamen Orten
Ich habe ein Beispiel vor, ein einfaches layout inklusive Kopf-und Fußzeile, aber wie Sie sehen können, es funktioniert nicht
Wie Sie sehen können auf Ihrem beispielsweise, wenn Sie mehrere layouts, für jeden von Ihnen müssen Sie kopieren die ersten 6 Zeilen... hässlich Leitbild
6 Zeilen ist kein großer Preis für die Verwendung von haml
InformationsquelleAutor KARASZI István
Sieht aus wie ich bin ziemlich spät zur party hier, aber vielleicht jemand anderem begegnen und diese benötigen, um mit dem gleichen problem (wie ich an diesem Abend Tat).
In meinem Fall, ich habe ein komplexeres setup für das öffnende HTML-tag und mehrere unterschiedliche layouts, so dass ich nicht wollen alle auf die Wiederholung. Mein öffnenden HTML-tag hat die Bedingungen für die unterschiedlichen IE-Versionen und ursprünglich sah so etwas wie dieses:
Ich hatte das gleiche problem mit
</html>
Kündigung vorzeitig, so Riss ich die HTML-Tags aus dem _head teilweise (wobei das head-tag) und erstellt die folgenden Helfer, um mit dem problem umzugehen:Es ist ein wenig chaotisch und vielleicht sogar ein bisschen aufgeräumt, aber die Grundidee ist, um die Vorteile der haml Motors #def_method, die es ermöglicht, das layout so Aussehen:
Ich glaube nicht, dass dies eine gute Lösung. Die oben genannten freigegebenen Vorlage ist ein viel besserer Ansatz.
InformationsquelleAutor Anthony Navarre