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>
Мне нравится этот заводной способ;)