我在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文件中的标签不是 - 有没有办法改变它?
答案 0 :(得分:3)
答案 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'
});
});