Ajax não atualizar div
25/10/2015 02:41
0
Olá,
Estou estudando grails a partir do livro Grains in Action - second edition, e estou com dificuldades de colocar o Ajax para funcionar. Não sei se realmente tem a ver com a depreciação a partir da versão 2.3, mas vamos lá. Tenho o seguinte controler:

class FeatureController {

def scaffold = true
def featureService

def random() {

def randomFeature = featureService.getRandomFeature()

[feature: randomFeature]
}

def ajaxRandom() {
def randomFeature = featureService.getRandomFeature()

// render {
// q(randomFeature.name)
// p(randomFeature.description)
// }

render "<q>${randomFeature.name}</q>" +
"<p>${randomFeature.description}</p>"
}

}
?

O arquivo random.gsp está conforme abaixo:

?<html>    <head>
<head>
<title>Random Quote</title>
<g:javascript library="jquery" />
</head>
<body>
<ul id="menu">
<li>
<g:remoteLink action="ajaxRandom" update="quote">
Next Quote
</g:remoteLink>
</li>
<li>
<g:link action="index">
Admin
</g:link>
</li>
</ul>

<div id="quote">
<q>${feature.name}</q>
<p>${feature.description}</p>
</div>
</body>
</html>


E o gsp de layout, conforme abaixo:

?<html> <head>
<title>QOTD » <g:layoutTitle/></title>
<g:external dir="css" file="main.css"/>
<g:layoutHead/>
<r:layoutResources />
</head>

<body>
<div id="header">
<g:img dir="images" file="apple-touch-icon.png" alt="logo"/>
</div>
<g:layoutBody/>
</body>
</html>

Entretanto, a div QUOTE não é atualizada quando o se clica no link da tag do RemoteLink. Simplemente, navega para a página ajaxRandom.
Existe algo a mais que se deve fazer para o ajax funcionar? Tem a ver realmente com a depreciação do ajax?

Desde já, agradeço.

Manoel Jr.

 
Tags: Grails, Ajax


0
Acho que você tem que retornar uma instância de feature e não um HTML.

Tenta chamar direto o  método "random": 
<g:remoteLink action="random" update="quote">


0
Victor,

O exemplo apresenta é igual ao do livro, porem, no livro, a versao utilizada é 2.3.X, e estou realizando os exemplos na versão 2.4.4. Pesquisei, e vi que a partir da versão 2.4, os comandos g:remoteLink estariam deprecated.

Quanto a sua solução, resolve, mas não resolve. rs. Resolve, pois a página é renderizada. Mas não resolve pois a página toda é renderizada, e não apenas a div em questão.
Mas obrigado pelo feedback.

Manoel Jr.
25/10/2015 12:04



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto