Comment puis-je accéder à un Grain variable en JavaScript?
J'ai une variable dans mon Graal de l'application BootStrap.groovy
:
class BootStrap {
def init = { servletContext ->
def testGrails = "11"
Je veux montrer un JavaScript alert()
si ce test de valeur est de 11.
Mon JavaScript:
<SCRIPT LANGUAGE="JavaScript">
if(testGrails==11) //WHAT TO WRITE WITH IN THE BRACKETS ...?
{
alert("yes");
}
Comment puis-je accéder à un Grain de classe en Javascript pour faire la-dessus?
Grâce.
OriginalL'auteur junaidp | 2011-11-18
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous devez vous rendre cette variable accessible à partir d'autres endroits. Actuellement, il est délimité à
init
portée. Vous pouvez le mettre dans les config par exemple (voirConfig.groovy
). Ou de l'ensemble d'un service. Ou de faire unepublic static
variable quelque part.Exemple pour un service:
et
Second - vous besoin de le mettre dans la demande. Il y a deux façons d'utiliser le filtre ou le contrôleur/action. La première option est utile lorsque vous souhaitez utiliser la même variable à partir de différents schémas de préférences.
De contrôleur, ce serait:
et l'utiliser à la SPG comme
Pourrais-tu montrer ton code?
Merci Igor! ... Je préfère inclure JS vars dans le SPG(Sitemesh mise en page): <g:script> var someJSvar = ${anyAvailableExpression}; </g:script>
OriginalL'auteur Igor Artamonov
Vous devez définir la variable dans le fichier Config.groovy, pas dans le Bootstrap. Ensuite, vous pouvez y accéder dans le spg fichiers comme ceci:
J'imagine que vous pouvez avoir un SPG fichier où vous avez toutes les variables que vous avez besoin, et de l'inclure jQuery dans tous les autres fichiers où vous en avez besoin pour accéder aux variables.
OriginalL'auteur socha23
Êtes-vous sûr que vous en avez besoin dans
Bootstrap.groovy
? Est-il quelque chose de vous calculer ou peut changer?Si votre réponse est non, j'ai trouvé que le
meta
balise est très utile pour obtenir des informations dans le SPG fichiers.Par exemple, si vous voulez que votre nom de l'application, vous pouvez l'obtenir comme ceci:
Vous pouvez obtenir des biens dans votre
application.properties
fichier comme ça.Et si vous, comme moi, ont besoin de concaténer à une autre valeur, ici, est mon exemple. Rappelez-vous que toutes les balises peuvent être utilisés comme une méthode sans
g:
espace de noms. Par exemple:Graal de la documentation à ce sujet est un peu pauvre, mais il est ici.
OriginalL'auteur mathifonseca