【问题标题】:GSP tags in JavaScriptJavaScript 中的 GSP 标签
【发布时间】:2011-11-12 06:33:04
【问题描述】:

我在 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>

createLink 标记不再由 Grails 评估。因此,似乎 &lt;script&gt; 块中的 Grails 标签被评估,但 GSP 包含的 .js 文件中的标签没有被评估 - 有没有办法改变这种情况?

【问题讨论】:

    标签: javascript grails gsp


    【解决方案1】:

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

    http://nerderg.com/GSParse

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

    【讨论】:

    • 这似乎完全符合要求
    • grails 3 应用程序的任何解决方案?
    【解决方案2】:

    你是对的 .js 文件不被 grails 评估!但普惠制是!所以这就是为什么当你设置标签时它正在工作。 我建议您采用不同的方法来获取该链接!当您使用 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'
        });
    });
    

    【讨论】:

    • 我想这会起作用,但我不喜欢向 HTML 元素添加自定义属性
    • 自定义数据属性在 HTML5、FWIW 中完全有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2016-07-29
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多