访问JavaScript文件中的Velocity变量

时间:2016-10-14 11:48:34

标签: javascript jquery html velocity

在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,但它检测到错误的语法或只返回字符串“$ {zip}”作为值:

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

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

1 个答案:

答案 0 :(得分:0)

Velocity变量在速度模板中可用,您不能在不通过模板引擎的文件中使用变量。除非您指定,否则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;
        }
    }

})();

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

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

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