1

状況: status という名前の javascript bool 変数があります。本当なら、Grails テンプレートをレンダリングしたいです。false の場合は、別の Grails テンプレートをレンダリングします。私のコード:

HTML/JS

<div id="content">
<g:javascript>
    $( function(){
        if( status==true ) {
            $.ajax({
                url: '/tool/home/renderSplash',
                type: 'POST',
                failure: function(){alert("Failed loading content frame"})
            }
        else{
            $.ajax({
                url: '/tool/home/renderContent',
                type: 'POST',
                failure: function(){alert("Failed loading content frame")}
            })
        }
    } )
</g:javascript>
</div>

聖杯:

class HomeController {

  def index() {}

  def renderSplash() {
      render( template: "splash" )
  }

  def renderContent() {
      render( template: "content" )
  }
}

POST には正しいテンプレート データが含まれていることがわかりますが、画面には表示されません。

私はそれを正しい方法でやっていますか?

4

1 に答える 1

5

結果をレンダリングする成功ハンドラーをAJAX呼び出しに追加します。レンダリングするには、プレースホルダー要素が必要です。例:

$.ajax({
       url: '/tool/home/renderContent',
       type: 'POST',
       failure: function(){alert("Failed loading content frame")},
       success: function(response) { $('#response').html(response); }
   })

...
<div id='response'></div>
于 2013-03-21T15:24:00.930 に答える