Передача модели в функцию Javascript через onSuccess ag: formRemote

0

Я хочу вызвать функцию JS либо функцией "onload()" после визуализации шаблона, либо посредством обратного вызова "onSuccess()" в теге g: formRemote. Внутри моего основного GSP у меня есть следующее. Этот код делает обратный вызов контроллеру и настраивает модель для передачи в шаблон.

GSP:
<g:formRemote name="ptoReport" url="[controller:'Report', action:'ptoBarChart']" update="barChartDiv">
    <g:submitButton name="pto" value="PTO" class="btn btn-primary"/>
</g:formRemote>

<div id="barChartDiv">
    <g:render template="barChart"/>
</div> 

Мой код контроллера выглядит так:

Controller:
def ptoBarChart(){
    Map usersAndPTO = timesheetService.getPTOForAllUsers()
    render(template: 'barChart', model:[points: usersAndPTO])
}

Я хочу вызвать функцию JS сразу после загрузки шаблона, но трюк состоит в том, чтобы передать карту "usersAndPTO" в функцию JS. Я попытался добавить "onLoad =" barChart ($ {points}) "" к визуализированному шаблону, но он никогда не вызывается. И добавление "onSuccess =" barChart (data) "к g: formRemote приводит к тому, что я передаю код GSP для шаблона функции JS.

Любая помощь очень ценится.

  • 0
    Разве вы не задумывались о добавлении js, который вам нужен, в ваш barChard.gsp ?, он будет выполнен, как только он будет на самом деле
  • 0
    но моя цель - вызвать JS с переданной моделью. Не уверен, что понимаю ваш комментарий.
Показать ещё 1 комментарий
Теги:
grails
grails-2.3

1 ответ

0
Лучший ответ

Проверь это:

в контроллере я бы вернул точки как json, тоже, если вам это нужно только для js, это будет только как json

render(template: 'barChart', model:[points: usersAndPTO,jsonPoints: usersAndPTO as JSON])

это вы шаблон _barChart.gsp внизу

...
<g:if test="${jsonPoints}">
<script>

alert("${jsonPoints}");
// you can also pass them to a function from original dom, its available cause this template now is part of original dom
myFreakyFunction("${jsonPoints}");
</script>
</g:if>

и когда шаблон загружен полностью, он должен предупредить! так

  • 0
    Красивый!!! Спасибо за помощь. Клянусь, я пробовал что-то очень похожее, но уверен, что так оно и будет. Просто нужно получить дружеский совет. Кстати, я выбрал первый вариант. Приветствия.
  • 0
    Тысяча способов в Риме, пока это работает, добро пожаловать: D

Ещё вопросы

Сообщество Overcoder
Наверх
Меню