0

私は新人のGrailsユーザーであり、AJAXをまったく使用していません。私はAJAXの概念を正確に把握しておらず、オンラインの資料は断片化されています。

私の理解では、HTMLドキュメントの一部が読み込まれたときに、コントローラーの1つでメソッドを実行したい場合は、次の行に沿って何かを使用するだけで済みます。

<div onload="${remoteFunction(action:"foo", update:"foo"...)}" ...>
  1. 架空のfooへの呼び出しからの応答はどのように返され、js関数でどのようにアクセスできますか?
  2. 架空のfooアクションから作成したクラスからオブジェクトを返すことはできますか?
4

1 に答える 1

4

fooアクションが戻ったら、単純なhtmlをテキストとして配置するか、ビューで使用できるいくつかのオブジェクトをレンダリングできます。

ここに、コントローラーの「レンダリング」に関するすべての情報があります

http://grails.org/doc/latest/ref/Controllers/render.html

そのデータで更新され、そこで作業することができます。次に、通常どおりにjavascriptを使用してその「foo」div内のHtmlとデータにアクセスできます。

例えば:

Controller.groovy

// renders text to response
render '<div id="bar" onclick="alert($('bar').val())>some text</div>'

View.gsp

//Makes the call and updates foo
<div onload="${remoteFunction(action:"foo", update:"foo"...)}" ...>
<div id="foo" name="foo"></div>

出力

<div onload="theAjaxJavascriptFunctionThatGrailsWillInject" ...>
<div id="foo" name="foo">
    <div id="bar" onclick="alert($('bar').val())">some text</div>
</div>

Controller.grooyからオブジェクトを返したら、View.gspでこのように扱う必要があります。

//Makes the call and updates foo
<div onload="${remoteFunction(action:"foo", update:"foo"...)}" ...>
<div id="foo" name="foo">
    ${myObject.theValueIWant}
</div>

javascriptアラートを追加しましたが、好きなように行うことができます。それを行う方法はたくさんあります。

それが役に立てば幸い :)

于 2012-07-19T06:20:41.613 に答える