2010-04-20 11 views
1

J'ai le sentiment que la réponse à cette question est facile, mais je ne peux pas sembler obtenir encore ...Comment transmettre des valeurs de grails à une fonction javascript?

J'ai une fonction Javascript qui appelle une action dans une classe Groovy par une remoteFunction. Maintenant, je dois retourner la valeur de la classe d'action à la fonction Javascript pour un traitement ultérieur. Il ressemble à ceci:

// sample js function in the gsp file 
function setPrev() { 
    ... 
    var tmp = $remoteFunction(action: 'someaction', params: ...) 
    ... 
} 

Dans le contrôleur, l'action ressemblerait à quelque chose comme ceci:

def someaction = { 
    ... 
    def retVal = Somedomain.anobject // 1:m relationship so there's a hasMany = [anobject...] in Somedomain 
    ... 
    return retVal 
} 

Maintenant, quand il retourne à tmp, il est [objet objet]. Y a-t-il un moyen pour moi d'obtenir, à tout le moins, [anobject1, anobject2, ..., anobjectn] comme valeur de tmp? J'ai même essayé json mais c'est toujours [object object].

Répondre

1

il est assez facile

return retVal as JSON 

Rappelez-vous simplement importer org.grails.converters.JSON (je pense qu'il est)

+0

salut, ya, je l'ai fait, mais quand j'imprimais tmp, il est [objet objet] ... pas la représentation json ... – callie16

+0

salut, c'est plus un problème javascript .. si vous utilisez FireBug dans FireFox (et vous devriez!), essayez d'écrire console.debug (tmp) dans votre code javascript . Pour obtenir vos données, vous devez écrire tmp.variableName. – sbglasius

+0

Merci pour la réponse :) En fait, j'ai regardé le DOM via Firebug mais je suis un peu perdu là aussi. Quoi qu'il en soit, comme pour le tmp.variableName, c'est un peu compliqué, je pense ... Je n'arrive pas à comprendre ce qu'est le variableName. retVal est, quand j'imprime le type de classe dans groovy, de type PersistentSet ... dans ce cas, il devrait ressembler à [object1: 1, object2: 2, ...] Donc devrais-je le référencer comme tmp.object1? Quand je l'ai fait, il m'a dit que c'était "indéfini" mais quand je regarde retVal, il a [object1: 1, object2: 2, ...] comme contenu ... – callie16

Questions connexes