2016-10-20 243 views
0

我們有一個共同的頁眉/頁腳模板作爲父模板,我們將重複使用100個子模板。 Extends指令不支持這...Rythm模板繼承

當我翻閱Rythm文檔時,我找到了一種通過include/invoke指令實現這一點的方法,但include/invoke指令的主要目的是調用常用函數。 Extends指令以相反的方式支持,將主模板內容與渲染指令一起作爲父模板和頁眉/頁腳模板作爲子模板,但實時用例完全不同

這是我的理解嗎?有沒有辦法解決我的問題?

編輯:

我已經編寫象下面這樣實現它:

footer.html

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

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

template1.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> 

我所做的是在include/invoke方法invocati的幫助下我已經得到了結果,但是當我使用延伸它不起作用。如果有可能你可以解決我的情況使用擴展?

+0

我不明白,爲什麼你說的擴展指令,不支持這一點。 '@ extend'指令旨在實現模板佈局。請參閱http://fiddle.rythmengine.org/#/editor/886606b3a7034088b991855bef8f89da –

+0

我已經添加了示例代碼,我在我的應用程序中使用。請考慮一下。 – suresh

回答

1

要使用@extends來達到同樣的效果,你應該有:

的layout.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> 

template.html

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

<h1>Hello @who</h1> 
@if(footer.equals("footer1")){ 
    @header1(); 
} else { 
    @header2(); 
} 
+0

是的,我已經嘗試過 – suresh

+0

你可能想upvote綠色答案 –