GSP теги в JavaScript - PullRequest
       6

GSP теги в JavaScript

4 голосов
/ 07 сентября 2011

У меня было следующее в <head> GSP

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

Обратите внимание, что я использую тег Grails createLink для создания URL, который будет публиковать запрос AJAXк.Когда я переместил этот код в checkout.js и заменил приведенный выше блок кода на:

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

, тег createLink больше не оценивается Grails.Таким образом, кажется, что теги Grails в блоках <script> оцениваются, а теги в файлах .js, включенных в GSP, - нет, есть ли способ изменить это?

Ответы [ 2 ]

3 голосов
/ 07 сентября 2011

Проверьте плагин GSParse, чтобы css и js были проанализированы как файл gsp:

http://nerderg.com/GSParse

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

2 голосов
/ 07 сентября 2011

Вы правы .js файлы не оцениваются граалями! но 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'
    });
});
...