我在Grails插件中有一些控制器,它们使用index.gsp和edit.gsp引用的标准_form.gsp。我的表单有一些输入元素,我想通过AJAX调用获取数据。
使用资源插件,我可以在我的页面中放置一个<r:script>
标记,其主体可以是包含g <g:createLink>
等gsp标记的javascript,然后我可以使用它来设置url属性一个AJAX块。
我已经切换到资产管道插件了,而且我在实现同样的事情的最佳方式上有点蠢蠢欲动。我想声明我的form.gsp模板依赖于包含多个ajax调用的脚本。
如果我使用<asset:script>
代码,那么我可以使用<g:createLink>
制作网址,但生成的代码最终会显示在网页正文的中间,即使是<asset:deferredScripts />
在edit.gsp和index.gsp页面的头部调用。如果我使用<asset:javacript src="myscript.js"/>
,那么我必须将控制器的URL硬编码到javascript文件中,我不愿意这样做,因为这是一个插件。
我看到的一个解决方法是让人们在一些页面元素的数据属性中粘贴所需的URL,然后在jQuery中检索它,或者设置包含serverURL的a global javascript variable。
有没有更好的方法?