Хороший способ передать переменные для общих элементов в шаблоны Mako? - PullRequest
1 голос
/ 02 декабря 2009

Я использую функции наследования Мако, чтобы выделить общие элементы страницы, такие как верхний и нижний колонтитулы, в шаблон «base.mako». Специфичные для страницы контроллеры используют свои собственные шаблоны, которые наследуют base.mako.

base.mako нужен набор переменных - например, имя вошедшего в систему пользователя указывается в заголовке для всех страниц. Тем не менее, это отдельный контроллер страницы, который выбирает и отображает шаблон, и, следовательно, отвечает за передачу ему переменных.

Я бы предпочел, чтобы все эти контроллеры страниц не знали, что нужно базовому шаблону в его контексте. Какой хороший способ установить контекст для базового шаблона в такой ситуации?

Заранее спасибо!

1 Ответ

0 голосов
/ 02 декабря 2009

У вас есть два варианта дизайна ОО для ваших контроллеров страниц.

Общие функции могут обрабатываться двумя способами.

  • Наследование. Все контроллеры страниц являются подклассами общего класса, который предоставляет общие атрибуты.

  • Делегирование. Все контроллеры страниц являются частью конвейера, где какой-то общий процесс (до или после контроллера страниц) складывает дополнительную информацию.

Вы должны выбрать один.

...