JavaScript 文件中的访问速度变量

Access Velocity Variable in JavaScript File

在 Velocity 中我设置了这样一个变量:

 #at ($page.config)
    #set ($zip = $helper.xssSafeString($url.param("zip")))
 #end

现在我想访问 JavaScript 文件中 $zip 的值,该文件包含如下:

 #at ($page.body)
    <script type='text/javascript' src='/javascript/main.js'></script>
    //...
 #end

在 main.js 文件中,我已经尝试了以下我发现的解决方案,例如 here,但它要么检测到错误的语法,要么检测到 returns 字符串 "${zip} " 作为值:

var zip = ${zip};
var zip = $zip;
var zip = "${zip}";

所以我的问题是如何访问速度变量的值并分配给外部文件中的 JavaScript 变量。

速度模板中提供了速度变量,您不能在未通过模板引擎的文件中使用您的变量。 Javascript 文件不会,除非您指定如此。

由于您尚未发布 main.js 文件的内容,我将举一个更广泛的示例,说明如何在 main.js.

中提供它

请考虑您的 main.js 文件的内容是:

var APP = APP || {};

APP.core = (function () {

    var zip = '';

    return {

        setZip: function(zip) {
            this.zip = zip;
        },

        getZip: function() {
            return this.zip;
        }
    }

})();

在您的速度文件中,您可以添加以下内容以在 main.js 中设置 zip 变量:

#at ($page.body)
    <script type='text/javascript' src='/javascript/main.js'></script>

    <script>
        APP.core.setZip(${zip});
        console.log(APP.core.getZip());
    </script>
#end