Playframework:将值传递给javascript的优雅方式

时间:2011-07-13 00:25:13

标签: javascript playframework

有没有人有一个优雅的解决方案来将服务器值传递给playframework中的javascript(不是内联)?就像html

中的$ {x}或& {'x'}一样

目前我能想到

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

我认为游戏有更好的解决方案

2 个答案:

答案 0 :(得分:2)

这有什么问题?我发现自己在做像

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

我喜欢它的常规方式;)

答案 1 :(得分:2)

它不漂亮,但这就是我总是最终做到的方式。

如果您传递给JavaScript的值描述了DOM中的某些内容,您可以考虑使用HTML 5数据属性将该信息放在HTML中。然后,您可以使用getAttribute检索它。例如如果您的网页是博文,并且您需要存储帖子ID,则可以使用

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

这样就可以将数据从逻辑中分离出来,而不需要内联任何JavaScript。您还可以使用隐藏的表单字段。