Je suis nouveau à Grails et eu un problème avec la g: commande formRemote ..Grails formRemote réoriente plutôt que de simplement appeler la méthode
Je veux ag: boîte textArea envoyer un message à mon contrôleur et enregistrer ce message . Ensuite, la page doit être mise à jour via le formulaireRemote Ajax, de sorte que les messages apparaissent sur la page.
Mais au lieu de mettre à jour la page, l'appel formRemote suppose que l'URL donnée est un lien réel et veut que je redirige vers ce site .jsp (inexistant).
La méthode que je veux commencer est appelé dans mon contrôleur tho
J'ai essayé beaucoup de solutions proposées dans des problèmes similaires, mais il semble que ce problème est différent du leur
Heres le code:
<div id="history">
<g:render template="posts" collection="${ messages }" var="message" />
</div>
<div class="postMessageForm">
<g:formRemote name="postChatMessage" url="[controller: 'meetingRoom',
action: 'postMessage']" update="history">
<div class="msg_box">
<g:textArea name="message" value="" style="width: 630px"/><br/>
</div>
<div style="float: right;">
<g:submitButton name="Send" style="width: 90px; height: 40px;"/>
</div>
</g:formRemote>
</div>
et c'est l'action qui est appelé dans mon MeetingRoomController:
def postMessage() {
if (params.message != "") {
def thisUser = lookUpUser()
def thisRoom = thisUser.joinedRoom
def chatPost = new ChatPost(
message: params.message,
author: thisUser
)
thisRoom.addToChatHistory(chatPost)
}
// def messages = currentChatHistory()
// render template: 'posts', collection: messages, var: 'message'
J'ai vu ce genre de ap proach dans le tutoriel de Jeff Browns Twitter.
échecs possibles que je vois:
- l'out-commenté rendu commande modèle a quelque chose à voir avec l'Ajax (Quand je ne commente pas la seule chose qui arrive est que les postes de modèle seront rendus sur la page redirigée
- utilisation des deux Ajax et jQuery (Mais je ne crois pas que peut être le point parce que je l'ai utilisé g: et d'autres choses groovy et nai même importé un lib jQuery)
- cela pourrait être plus facile avec remoteFunction (Je ne sais pas vraiment comment faire fonctionner le remoteFunction dans ce cas tho)
J'espère que cette information est suffisante pour laisser quelqu'un voir ce que je suis absent
Je suis désolé, j'ai eu le sentiment d'avoir oublié quelque chose (écrire en plus) .. J'avais importé la lib via déjà .. Ce n'est malheureusement pas le problème. J'ai essayé de laisser la commande de rendu dans le code html, mais la commande de rendu dans mon contrôleur est exécutée dans ce nouveau (non-existant) postMessage.gsp. Donc, au lieu d'obtenir le droit update = "history", il essaie de rediriger vers un fichier gsp basé sur mon action = input. –
cranq
dans les outils de développement pour votre navigateur, voyez-vous le fichier prototype.js ou quelque chose de similaire se faire tirer dedans? –
vous aviez raison, le prototype.js n'a pas été importé par la commande
cranq