共通要素の変数を Mako テンプレートに渡す良い方法はありますか?

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

  •  11-09-2019
  •  | 
  •  

質問

私は Mako の継承機能を使用して、ヘッダーやフッターなどの一般的なページ要素を「base.mako」テンプレートに取り込んでいます。ページ固有のコントローラーは、base.mako を継承する独自のテンプレートを使用します。

base.mako には一連の変数が必要です。たとえば、ログオンしているユーザーの名前がす​​べてのページのヘッダーに含まれます。ただし、テンプレートを選択してレンダリングするのは個々のページ コントローラーであるため、テンプレートに変数を渡す責任があります。

むしろ、これらすべてのページ コントローラーが、コンテキスト内で基本テンプレートに必要なものを知る必要がないようにしたいと考えています。このような状況で基本テンプレートのコンテキストを確立する良い方法は何でしょうか?

前もって感謝します!

役に立ちましたか?

解決

ページ コントローラーには 2 つの OO デザインの選択肢があります。

共通の機能は 2 つの方法で処理できます。

  • 継承。すべてのページ コントローラーは、共通の属性を提供する共通クラスのサブクラスです。

  • 代表団。すべてのページ コントローラーはパイプラインの一部であり、一部の共通プロセス (ページ コントローラーの前または後) が追加情報を折り込みます。

どれか 1 つを選択する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top