Playframework: элегантный способ передачи значений в javascript

есть ли у кого-нибудь элегантное решение для передачи значений сервера в javascript (который не является встроенным) в playframework? так же, как ${x} или & {'x'} внутри html

В настоящее время я могу думать о

  <script type="text/javascript">
     var x= ${x};
  </script>
  <script src="/public/javascripts/jsThatUsesX.js" type="text/javascript" ></script>

Я думаю, что есть лучшее решение от play

2 ответов


это не очень красиво,но так я всегда это делаю.

Если значения, которые вы передаете JavaScript, описывают что-то в DOM, вы можете использовать атрибуты данных HTML 5 для размещения этой информации в HTML. Тогда вы можете получить его с getAttribute. например, если ваша страница является сообщением в блоге, и вам нужно сохранить идентификатор сообщения, вы можете использовать

<div class="post" data-post-id="77">
   ...
</div>

таким образом, данные отделяются от логики, и вам не нужно вставлять какой-либо JavaScript. Можно также использовать скрытое поле формы.


что в этом плохого? Я обнаружил, что делаю такие вещи, как

<script>
   var trades = [${_trades.collect {models.Trade t -> t.price}.join(", ")}];
   // ...
</script>

Мне нравится этот заводной способ;)