2017-03-26 1 views
0

J'ai ci-dessous la ligne dans mon fichier gsp grails.Comment passer ou utiliser une variable de GSP en Javascript

<div class="pagination"> 
     <g:paginate total="${lotCount ?: 0}" /> 
    </div> 

Je veux passer lotCount valeur à l'un de mes javascript fichier zone switcher.js appelé à utiliser davantage. Comment puis-je faire ceci?

J'ai essayé de renvoyer une suggestion de How to pass a value directly from a controller to a javascript file in Grails où je fais ci-dessous dans mon gsp

<g:javascript> var theId = ${lotCount} </g:javascript> 

et essayer ci-dessous dans mon fichier js pour tester

alert(theId); 

mais il ne fonctionne pas. Erreur reçue comme ReferenceError: theId n'est pas défini. S'il vous plaît aider.

+0

début en mettant des marques de parole autour de l'appel id donc 'var theID = "$ {lotCount}";' – Vahid

+0

@vahid j'ai toujours le même erreur car l'ID n'est pas défini – Venos

Répondre

0

Utilisez un hiddenField:

<g:hiddenField name="lotCount" value="${lotCount}" /> 

<div class="pagination"> 
    <g:paginate total="${lotCount ?: 0}" /> 
</div> 
0

Votre solution devrait fonctionner.

Assurez-vous simplement que source de En outre, il y a la ligne de page html générée

<g:javascript> var theId = ${lotCount} </g:javascript> 

est placé avant ligne qui inclut zone switcher.js

<script type="text/javascript" src="area-switcher.js"> 

deux autres options à passer une valeur de .gsp au fichier javascript (les exemples utilisent jQuery):

  1. À l'aide de l'attribut de données. Par exemple,

gsp (ici div, la durée, l'entrée, d'autres balises pourraient être utilisés):

<div id="countElem" data-count="${count}"> 

js (jQuery utilisé ici):

var count = $("#countElem").data('count'); 
  1. Comme mentionné dans un autre commentaire, en utilisant du champ caché:

gsp:

<g:hiddenField name="countElem" data-count="${count}"/> 

js (jQuery utilisé ici):

// hidden field will have name and id equals to countElem 
var count = $("#countElem").val();