Comment passer une variable dans le modèle de grails à partir d'un fichier de mise en page?
J'ai donc un modèle navigation (/common/_navigation.spg) qui est rendu dans le Graal de projets principal fichier de configuration (/layouts/main.spg). Comment puis-je passer une sorte de variable/paramètre/arg de l'individu afficher les fichiers de mise en page et, finalement, dans le modèle navigation? Je veux juste l'onglet de droite pour mettre en évidence, lorsque je suis sur une page.
(Nous avons déjà essayé d'utiliser le Graal de Navigation Plugin. Depuis, nous avons les différents onglets qui pointent vers le même contrôleurs (même point de vue, différent de filtre), il se décompose.)
source d'informationauteur Mikey Donuts
Vous devez vous connecter pour publier un commentaire.
J'ai ce rythme tout le temps. De mon point de vue, je peux joindre une propriété de la page, que ce soit manuellement ou en utilisant le paramètre de balise dans la vue que je suis rendu. Ses pas documenté dans le Graal guide de l'utilisateur, mais c'est super pratique.
Alors je voudrais accéder à la page de la propriété à l'aide de la pageProperty tag.
La mise en page n'a pas besoin de gérer cette variable à tous 🙂
suffit d'utiliser le paramètre du modèle
par Exemple:
vue:
_template:
- Je utiliser un sans doute la méthode la plus simple. Il suffit de définir une variable à la demande de la portée de la vue individuelle avant d'appeler votre disposition. Il sera disponible dans tous les modèles utilisés dans la demande, y compris la mise en page et appelés, via
<g:render>
Puis il suffit de référence de la variable comme vous le feriez pour tout autre dans votre mise en page ou d'autres modèles tirés par votre point de vue
Vous auriez besoin d'utiliser une propriété de page: http://grails.org/doc/1.1.1/ref/Tags/pageProperty.html
Puis la passer dans le rendu de la balise à l'aide du modèle param.
acclamations
Lee
Le modèle que j'aime, utilise le pageProperty comme suit. Dans la mise en page, je de référence de la pageProperty comme suit:
La mise en page du spg
... et à l'intérieur de la
<head>
section spécifique de la spg page (j'ai trouvé qu'il ne fonctionne PAS à l'extérieur de la section de la tête), je déclare la valeur de la sorte:La page gsp
HTML résultant
En outre, je peux injecter une valeur à partir du modèle de contrôleur dans pageProperty comme suit:
Contrôleur
La mise en page de gsp (à l'aide de la même mise en page que ci-dessus)
La page gsp
HTML résultant
Basé sur mes lectures, je pense que c'est pas une bonne pratique pour transmettre des variables à votre disposition. Les variables du modèle sont accessibles dans la vue. Je pense que les mises en page doit uniquement être utilisée pour spécifier la structure de la page, tandis que les vues peuvent être utilisées pour remplir le contenu.