首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rythm模板继承

Rythm模板继承
EN

Stack Overflow用户
提问于 2016-10-20 12:39:31
回答 1查看 121关注 0票数 0

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

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

这就是我的理解对吗?有办法解决我的问题吗?

编辑:

为了实现这个目标,我编写了如下代码:

footer.html

代码语言:javascript
复制
@def header1() {
    <h3>This is footer1 section</h3>
}

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

template1.html

代码语言:javascript
复制
@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>

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

EN

回答 1

Stack Overflow用户

发布于 2016-10-21 10:17:41

要使用@extends实现同样的效果,您应该有:

layout.html

代码语言:javascript
复制
<html>
    <head>
        <title>Hello world from Rythm</title>
    </head>
    <body>
        @render()
    </body>
</html>

header1.html

代码语言:javascript
复制
<h3>This is footer1 section</h3>

header2.html

代码语言:javascript
复制
<h3>This is footer2 section</h3>

template.html

代码语言:javascript
复制
@extends(layout)
@args String who, String footer

<h1>Hello @who</h1>
@if(footer.equals("footer1")){
    @header1();
} else {
    @header2();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40154763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档