Twig 只是一个常规的块与细枝重用-如何?
假设我们有一个块模板,我们想在一个页面上多次使用它。每次我们需要做三件事:Twig 只是一个常规的块与细枝重用-如何?,twig,Twig,假设我们有一个块模板,我们想在一个页面上多次使用它。每次我们需要做三件事: 在顶层设置一个类 定名 添加一些内容 如何在细枝上实现这一点 我知道宏,但它不接受内容。 我知道block,但它不接受参数 所以。。。如何以正常的方式做到这一点 因为我不知道怎么做,所以稍后我将使用一个虚构的结构“blockdef”和“blockuse”来演示这个任务(这是非常普通的) 假设我们有一个可爱的小树枝块模板: 块。细枝: {%blockdef myblock(类,标题)%} {{title}} {{con
- 在顶层设置一个类
- 定名
- 添加一些内容
{%blockdef myblock(类,标题)%}
{{title}}
{{content}}
{%endgoodblock%}
想这样使用它:
main.twig:
{%blockuse myblock('c1','Title1'}
第1区内容
{%endblockuse%}
{%blockuse myblock('c2','Title2'%}
第2区内容
{%endblockuse%}
{%blockuse myblock('c3','Title3'%}
第3区内容
{%endblockuse%}
有这样的吗
更新。例如,这是如何在Jade上解决的:
mixin myblock(cls, title)
.block(class=cls)
.inner
.title= title
.content
block
+myblock('c1', 'Title1')
p Block 1 content
+myblock('c2', 'Title2')
p Block 2 content
+myblock('c3', 'Title3')
p Block 3 content
您可以将
包含在中:
{% include 'template.html' with {'class': 'class', 'title': 'title', 'content: 'content'} %}
内容不是字符串,它是模板的另一部分。请详细说明完整的解决方案是什么样子的?然后您可以从template.html中包含它,或者将其设置为变量,并将该变量作为'content':variable
.Marc传递。这里的内容问题是它不是字符串,而是模板。因此,您需要首先渲染它,声明一个新的捕获变量,然后将其传递给宏(比包含在中更合适)。老实说,它看起来不合理或不理想。您可以创建自己的节点
从块
扩展它并添加参数