在 Grails 中通过 AJAX 渲染模板

Posted

技术标签:

【中文标题】在 Grails 中通过 AJAX 渲染模板【英文标题】:Rendering template via AJAX in Grails 【发布时间】:2012-01-11 05:03:36 【问题描述】:

我在一个动作中有以下代码

    render ( template: 'partial_list_template', model: [messageList: entries, totalFound: count, activeUILink: "all_mgs_link", termFreqs: null])

我在gsp页面中有如下代码

$j("#filterUpdate").click(function(event)

        var form = $j('#flags');



         new Ajax.Request('/tabulae/webForm/filter',
                
                onSuccess:function(resp)

                               console.log(resp.responseText);
                                console.log($j('#filterResults'))
                                $j('#filterResults').remove()
                                $j('#filterResults').innerhtml(resp.responseText)
                            ,
                            onError: function(resp) 
                                alert("Error:" + resp.toJSON());
                                return;
                            ,
                            asynchronous:true,
                            evalScripts:true,
                            method:'GET',
                            parameters:form.serialize()

                );
      );

即使我在控制台日志中看到了 html 输出。我在添加此内容的元素中看不到 html 输出。任何想法为什么?

【问题讨论】:

【参考方案1】:

不要使用 .remove() ,因为那时您将删除该元素,并且在下一步中找不到任何元素。而且,没有称为 .innerHTML() 的方法 ...您应该使用 .html()

希望有帮助

【讨论】:

【参考方案2】:

尝试使用empty

$j('#filterResults').empty();                            
  $j('#filterResults').innerHTML(resp.responseText);

【讨论】:

工作就像一个魅力。我之前尝试过empty和html,但由于某些原因,它不起作用。

以上是关于在 Grails 中通过 AJAX 渲染模板的主要内容,如果未能解决你的问题,请参考以下文章

在 python 中通过 django-crispy-forms 渲染表单

Grails - 如何使用 ajax 加载模板?

Grails - 从 Javascript 方法调用控制器和渲染模板

Grails:将模板渲染为字符串

在 grails 服务中使用 g.render

django中通过文件和Ajax来上传文件