0

我们有一个通用的页眉/页脚模板作为父模板,我们将为 100 个子模板重复使用。扩展指令不支持此...

当我浏览 Rythm 文档时,我找到了一种通过 include/invoke 指令来实现这一点的方法,但 include/invoke 指令的主要目的是调用公共函数。扩展指令以相反的方式支持,将带有渲染指令的主模板内容作为父模板,将页眉/页脚模板作为子模板,但实时用例完全不同

我的理解对吗?有没有办法解决我的问题?

编辑:

我编写了如下代码来实现它:

页脚.html

@def header1() {
    <h3>This is footer1 section</h3>
}

@def header2() {
    <h3>This is footer2 section</h3>
}

模板1.html

@include("footer.html")
@args String who
<html>
    <head>
        <title>Hello world from Rythm</title>
    </head>
    <body>
        <h1>Hello @who</h1>
        @if(footer.equals("footer1){
            @header1();
        } else {
            @header2();
        }
    </body>
</html>

我所做的是在包含/调用方法调用的帮助下,我得到了结果,但是当我使用扩展时它不起作用。如果可能的话,你可以使用扩展来解决我的问题吗?

4

1 回答 1

2

要使用@extends以达到相同的效果,您应该具有:

布局.html

<html>
    <head>
        <title>Hello world from Rythm</title>
    </head>
    <body>
        @render()
    </body>
</html>

header1.html

<h3>This is footer1 section</h3>

header2.html

<h3>This is footer2 section</h3>

模板.html

@extends(layout)
@args String who, String footer

<h1>Hello @who</h1>
@if(footer.equals("footer1")){
    @header1();
} else {
    @header2();
}
于 2016-10-21T10:17:41.260 回答