Gute Möglichkeit, Variablen für gemeinsame Elemente an Mako -Vorlagen zu übergeben?

StackOverflow https://stackoverflow.com/questions/1830042

  •  11-09-2019
  •  | 
  •  

Frage

Ich verwende Makos Vererbungsfunktionen, um gemeinsame Seitenelemente wie eine Header und Fußzeile in eine "Basis.Mako" -Stemplate zu berücksichtigen. Seitenspezifische Controller verwenden ihre eigenen Vorlagen, die Base.mako erben.

Base.mako benötigt eine Reihe von Variablen-zum Beispiel wird der Name des protokollierten Benutzers für alle Seiten in den Kopfzeile. Es ist jedoch der einzelnen Seitencontroller, der die Vorlage auswählt und rendert und daher dafür verantwortlich ist, Variablen an sie zu übergeben.

Ich möchte lieber, dass alle diese Seitencontroller nicht wissen müssen, was die Basisvorlage in ihrem Kontext braucht. Was ist ein guter Weg, um den Kontext für die Basisvorlage in einer solchen Situation festzulegen?

Danke im Voraus!

War es hilfreich?

Lösung

Sie haben zwei OO -Designoptionen für Ihre Seitencontroller.

Häufige Merkmale können auf zwei Arten behandelt werden.

  • Nachlass. Alle Seitencontroller sind Unterklassen einer gemeinsamen Klasse, die die gemeinsamen Attribute liefert.

  • Delegation. Alle Seitencontroller sind Teil einer Pipeline, bei der ein gemeinsamer Prozess (entweder vor oder nach dem Seitencontroller) in den zusätzlichen Informationen faltet.

Sie müssen einen auswählen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top