1

情况是:我有一个名为 status 的 javascript bool 变量。如果是真的,我想渲染一个 Grails 模板。如果它是假的,我想渲染另一个 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 回答