将变量传递给Mako模板的好方法是什么?
我正在使用Mako的继承功能,把一些公共的页面元素,比如页眉和页脚,放到一个叫“base.mako”的模板里。每个具体的页面控制器会使用自己的模板,这些模板都继承自base.mako。
base.mako需要一组变量,比如,登录用户的名字会显示在所有页面的页眉里。不过,具体的页面控制器负责选择和渲染模板,因此它们也需要把这些变量传递给模板。
我希望所有的页面控制器都不需要知道base模板需要哪些变量。有没有什么好的方法来为这种情况设置base模板的上下文呢?
提前谢谢你们!
1 个回答
0
你有两种面向对象设计的选择来处理你的页面控制器。
一些共同的功能可以通过两种方式来处理。
继承。所有的页面控制器都是一个共同类的子类,这个共同类提供了大家都需要的属性。
委托。所有的页面控制器都在一个流程中,其中某个共同的过程(在页面控制器之前或之后)会加入额外的信息。
你需要选择其中一种。