1

在我的 grails 应用程序中,我使用了很棒的资源插件,它连接了所有依赖项。当我进行 ajax 调用时,我总是使用<r:layoutResources disposition="defer"/>它来呈现所有脚本<r:script>...和其他依赖项属性。

问题是如果我使用<r:require module="myModule"/>并且模块指定了一个之前未加载的 JS 文件(当页面未加载时)。AJAX 调用后 JS 文件没有加载,这或多或少是意料之中的,因为所有 JS 文件都应该在页面渲染时加载。

我的问题是如何正确解决它?我应该把我的 r:require 放到第一个请求期间呈现的 gsp 吗?或者是否有任何计划让 r:require 在 AJAX 时处理“外部”JS 文件?

谢谢,马特奥

4

1 回答 1

1

创建一个布局 ajaxInternal.gsp 并输入如下内容:

<r:require module="gaScript" />
<r:layoutResources />
<g:layoutBody />
<r:layoutResources disposition="defer" />

并在控制器的 ajax 操作中呈现:

render(template:"aTemplateIfRequired", model:[yourModel],layout:'ajaxInternalContentBox')

所以你所有的js都会正常工作,你的所有模块也会正常工作。

于 2014-03-13T11:23:49.323 回答