根据JS变量渲染Grails模板

时间:2013-03-21 15:01:37

标签: javascript jquery ajax grails

情况是:我有一个名为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>

的Grails:

class HomeController {

  def index() {}

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

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

我可以看到,POST包含正确的模板数据,但没有带到屏幕上。

我这样做的方法是否正确?

1 个答案:

答案 0 :(得分:4)

为您的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>