JavaScript中的GSP标记

时间:2011-09-07 15:17:15

标签: javascript grails gsp

我在GSP的<head>中有以下内容

<script type="text/javascript>
    $("button.remove-item").click(function() {
        $.ajax({
            url: "${createLink(action: 'remove', controller: 'cart')}",
            type: 'POST'
        });
    });
</script>

请注意,我正在使用Grails createLink标记来构造AJAX请求将发布到的URL。当我将此代码移动到checkout.js并将上面的代码块替换为:

<script type="text/javascript" src="${resource(dir: 'js', file: 'checkout.js')}"></script>

Grails不再评估createLink标记。所以似乎评估<script>块中的Grails标签,但是GSP包含的.js文件中的标签不是 - 有没有办法改变它?

2 个答案:

答案 0 :(得分:3)

查看GSParse插件,将css和js解析为gsp文件:

http://nerderg.com/GSParse

http://grails.org/plugin/gsp-arse

答案 1 :(得分:2)

你是对的.js文件不是由grails评估的!但GSP是!这就是为什么当你设置标签时它正在工作。 我建议你有一个不同的方法来获取该链接!因为你正在使用jquery我会这样做:

<input type="button" class="remove-item" data-url="${createLink(action: 'remove', controller: 'cart')}" value="GO" />

checkout.js:

$("button.remove-item").click(function() {
    $.ajax({
        url: $(this).data('url'),
        type: 'POST'
    });
});