2012-08-08 53 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(){});