【问题标题】:How do I replace Js Global Variables and handle scala variables in Play Framework?如何在 Play Framework 中替换 Js 全局变量并处理 scala 变量?
【发布时间】:2017-08-30 18:05:09
【问题描述】:

我有 3 个由 Java 创建的映射变量,它们作为 3 个 Scala 变量传递到我的 Playframework 的 scala.html 页面。

这个 scala.html 将它们传递给三个全局 Js 变量,然后由 GoogleCharts (Javascript) 解释。

单独使用其中一个全局变量会按预期显示图表,但两个或三个意味着不会显示任何图表。

我知道全局变量是不好的做法,我明白为什么。将这 3 个 scala 变量传递给 JS 的最简单方法是什么?

<head>
...
<script>
window.APP = {sMap: '@sMap'};
</script>
<script type="text/javascript" src="@routes.Assets.at("/public/javascripts", "sChart.js")"></script>
<script>
window.APP = {eMap: '@eMap'};
</script>
<script type="text/javascript" src="@routes.Assets.at("/public/javascripts", "eChart.js")"></script>
<script>
window.APP = {vMap: '@vMap'};
</script>
<script type="text/javascript" src="@routes.Assets.at("/public/javascripts", "vChart.js")"></script>
</head>

其中一个 js 文件的示例:

function drawChart() {
var sMap = window.APP.sMap;
var data = new google.visualization.DataTable();
data.addColumn('number', 'Count');
var mapString = sMap;
...;

【问题讨论】:

    标签: javascript scala playframework playframework-2.0 google-visualization


    【解决方案1】:

    当我从函数外部声明全局变量时它可以工作(我之前将它放在函数内部,它只使用一个变量,但停止使用两个或更多变量)。

    我现在的样子是这样的:

    var sMap = window.APP.sMap;
    
    function drawChart() {
    var data = new google.visualization.DataTable();
    data.addColumn('number', 'Count');
    var mapString = sMap;
    ...;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      • 1970-01-01
      • 2020-04-19
      • 1970-01-01
      • 2012-07-02
      • 2023-03-14
      • 2015-11-25
      相关资源
      最近更新 更多