2016-10-20 1 views
0

Nous avons un modèle d'en-tête/pied de page commun comme modèle parent que nous réutiliserons pour 100 sous-modèles. La directive Extends ne prend pas en charge cette ...Héritage du modèle de rythme

Lorsque je passe en revue la documentation Rythm, j'ai trouvé un moyen d'y parvenir par des directives include/invoke mais le but principal de la directive include/invoke est d'invoquer la fonction commune. La directive Extends supporte de manière inverse en plaçant le contenu du template principal avec une directive render en tant que template parent et header/footer en tant que sous-modèle, mais l'utilisation en temps réel est totalement différente. Y a-t-il un moyen de résoudre mon problème?

Modifié:

je code comme ci-dessous pour y parvenir:

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> 

Qu'est-ce que je l'ai fait est avec l'aide de include/invoke method invocati J'ai obtenu le résultat mais quand j'utilise l'extension, ça ne marche pas. Si c'est possible, pouvez-vous résoudre mon cas en utilisant extend?

+0

Je ne comprends pas pourquoi vous dites Prolonge pas directive de soutien qui. La directive '@ extends' est conçue pour implémenter la mise en page de modèle. S'il vous plaît se référer à http://fiddle.rythmengine.org/#/editor/886606b3a7034088b991855bef8f89da –

+0

J'ai ajouté l'exemple de code que j'utilise dans mon application. S'il vous plaît, regardez-le. – suresh

Répondre

1

Pour utiliser @extends pour obtenir le même effet, vous devriez avoir:

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

Oui, je l'ai déjà essayé – suresh

+0

vous pourriez vouloir upvote greens réponse –