2014-02-06 4 views
0

Когда я попытался установить переменную из функции яваскрипта в виду GSP я имел ошибку: «Невозможно вызвать метод FUNC() на нулевой объект»Grails - набор переменных из функции яваскрипта

GSP:

<g:set var="variable" value="${tr.func.name()}" /> 

Я также попытался к обойти проблему без успеха: переменная undifined

<g:javascript>var test = tr.func.name();</g:javascript> 
<g:set var="variable" value="${test}" /> 
<g:javascript>alert(${variable});</g:javascript> 

Благодаря

+1

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

+0

У меня есть функция jquery, которая получает timzone от пользователя, я хочу использовать его для: Jils

+1

В этот момент уже слишком поздно, gsp работает на сервере. вы не можете использовать теги gsp в браузере. поэтому вам нужно использовать javascript для форматирования даты. –

ответ

2

Вы должны использовать Javascript в браузере. GSP работает на стороне сервера.

Просто отправьте дату в GMT в браузер и примените там форматирование. Существует хорошая библиотека js для форматирования даты: moment.js

1

Вы не можете этого сделать. <g:set> используется для установки серверных переменных в GSP. Javascript является клиентской стороной.

+0

Есть ли еще решение от Grails? – Jils

+1

Нет полного решения. Теги GSP отображаются до отправки клиенту. Когда JavaScript выполняется, он находится в клиенте. Различие между клиентской и серверной сторонами является важным. Решение, которое вы ищете, это использовать форматирование даты JavaScript. – spikeheap

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