2012-08-08 50 views
2

我想知道的有后处理的可能性文件* .js文件让每一个GSP表达式进行评估。后处理* .js文件使用Grails

例如我可以在GSP页面直接写入以下代码:

<script type="text/javascript"> 
$.post("${createLink(controller:'mycontroller',action:'myaction')} " , {"id":id},function(){}); 
</script> 

和表达式$ {建立连结}由Grails的评价。

但我想也使用$ {建立连结()}在没有被处理的Grails * .js文件。 也许是可以使用的资源插件后处理每一个* .js文件和评估GSP表达式?

当然,我可以换我所有的JS代码在一个单独的页面普惠制,但它似乎并不像一个优雅的解决方案。

任何帮助,将不胜感激。

回答

0

另一种选择是做类似于存储URL的东西一个变量

<script type="text/javascript"> 
    var url = "${createLink(controller:'mycontroller',action:'myaction')}"; 
</script> 

然后你c使用所有的ajax调用你想要的,并且仍然只有一次url设置。

0

使用JS哈希在你的GSP文件中保存哪些事项

<r:script> 
var linkobject={ 
    mylink:'${createLink(controller:"mycontroller",action:"myaction")}', 
     linkA : '${params.id}', 
    linkB: '${g.createLink(action: "getThreats")}', 
    linkC: '${g.createLink(action: "addThreat")}', 
    linkD: '${g.resource(dir: 'images/icons', file: 'folder.png')}' 
  
} 

</r:script> 

然后,消耗在你的JavaScript文件JS hash来得到你需要的东西:

$.post(linkobject.mylink , {"id":linkobject.linkA},function(){});