2012-06-21 4 views
0

Я хочу передать параметры URL, используемые в GSP, в jQuery-функцию. Я нашел решение, которое работает, но моя кишка говорит мне, что использование глобальных переменных Javascript не является хорошей идеей.Передача параметров Grails на Javascript

GSP - изготовление params.id из Grails, доступных для Javascript в качестве глобальной переменной:

<g:javascript > 
    var categoryId = ${params.id} 
</g:javascript> 

Использование этой переменной в JQuery-функции:

<g:javascript src="views/visual.js"/> 

Javascript:

// Call with URL using the global variable defined in the GSP 
$.getJSON(
    "../visualJson?id=" + categoryId, 
    function (data) { 
    // Some code. 
}); 

Что такое идиоматический метод Grails?

ответ

3

Хотя это не обязательно относится к Grails, почему бы вам не передать переменную в функцию? Скажи:

В «просмотров/visual.js» у вас есть:

var someFunction = function(categoryId) 
{ 
    // Call with URL using the global variable defined in the GSP 
    $.getJSON(
     "../visualJson?id=" + categoryId, 
     function (data) { 
     // Some code. 
    }); 
} 

И, таким образом, вы передаете значение путем вызова функции someFunction('${params.id}') в вашем приложении.

+0

Или вы можете создать объект javascript, который содержит переменные - таким образом, вы не имеете глобальных переменных. –

+0

Но этот объект по-прежнему будет доступен по всему миру, и это может быть перезаписано другими скриптами, особенно если вы используете сторонние скрипты (конечно, сценарий с наименьшим сценарием) –

+0

В этом случае любой скрипт может быть перезаписан другими скриптами. –

Смежные вопросы