如何解决可变叶子模板
我正在使用 Leaf Tau,但我认为在“标准”Leaf 中问题是类似的(只是一些其他关键字)。
到目前为止,我的页面是以我称之为“自下而上”的方式创建的。我渲染最具体的部分,然后使用 #inline
例如。在我的 list.leaf 我有:
#define(body):
//my html
#enddefine
#inline("main/subMenus")
#define(subMenus):
//some html
#evaluate(body)
#enddefine
#inline("main/mainMenu")
然后我可能有 mainMenu 文件
#define(mainMenu):
//some html
#evaluate(subMenus)
#enddefine
#inline("main/index")
最重要的是我的索引文件。在我的控制器中,我将渲染包含 #define(body) 的 list.leaf 文件。
到目前为止,这对于这个项目中大约 40 个不同的页面(列表和记录页面)来说已经很完美了,但现在需要在身体层面上完全不同的东西。我需要在一页中几个不同的主体。
让我澄清一下:用户可以在应用程序中选择创建不同类型的操作。有些动作有 2 个字段和一个图像,其他的有 12 个字段,其他的 5 个字段 3 个图像,......所以它们将呈现完全不同的渲染。 每个动作都有一个名称:例如:Promotion,Invitation,...
用户可以有许多不同的动作,因此我将向我的叶模板传递一系列动作,然后我想呈现这些动作。所以在伪代码中我的正文文件看起来像:
#define(body)
#for(action in actions):
#evaluate(action.name)
#endfor
#enddefine
#inline("main/subMenus")
但是有几个问题:
- 我可以在顶部的正文文件中定义每个操作,而是将它们放在单独的文件中。因此,向程序添加操作意味着,在叶模板级别,添加具有定义和 html 的 1 个文件。但是我不知道如何做到这一点
- #evaluate(action.name) 不起作用,看来我不能使用变量,但需要使用硬编码的静态名称
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。