Snažím sa používať značku g: formRemote v gráli.
V definícii hlavy:
<g:javascript library="prototype" />
vyhliadka:
<g:formRemote name="something" update="remoteDocsBlock"
url="[ controller: "document",
action: "search"]">
search: <input name="searchstring" type="text"></input>
<g:actionSubmit value="Search" action="search" />
<g:render template="/document/remoteSearchList" model="[docs:docs]" />
</g:formRemote>
<div id="remoteDocsBlock">this div is updated with the result...</div>
v mojom regulátore
def search = {
.....
render (template:"remoteSearchList", model: [docs:docs])
}
problém
Čo sa stane: zavolá sa do radiča a celá stránka sa nahradí výsledkom radiča - šablóny _remoteSearchList. Rôzne volanie Ajaxu na stránke funguje. Nemám tušenie, prečo sa grály takto správajú.
aktualizovať
Odstránil som problém „__“. Komentár túto otázku vyriešil.
aktualizovať
Izoloval som problém: JQuery. Na webe tiež používam JQuery. Ak je odstránené, volanie ajaxu funguje ... musí nájsť spôsob, ako zabezpečiť, aby obidve fungovali.
<g:javascript library="jquery-1.4.4.min" />
<g:javascript library="jquery-ui-1.8.7.custom.min" />
<g:javascript library="jquery-server-extentions" />
odpovede:
1 pre odpoveď č. 1Oh, zdá sa, že je to kvôli konfliktu s Prototypom (predvolene dodávaný s programom Grails) a jQuery. Vzdialené hovory sa uskutočňujú prostredníctvom protokolu prototyp lib, ale ak nainštalujete jQuery plugin pre grály - začne používať jQuery pre vzdialené hovory.