我的Freemarker文件中有一个JavaScript函数,如下所示:
<script type="text/javascript">
function myFunc(){
var myString = "I like pizza";
return myString;
}
</script>
我正在尝试将myFtring的myString返回值分配给Freemarker中的myVar,如下所示:
<#assign myVar = myFunc()>
不幸的是,myVar的值是一个ampty String(“”)。 我做错了什么?
答案 0 :(得分:1)
FreeMarker在Web服务器上运行,而JavaScript稍后在浏览器中运行。所以你应该最终得到一个错误,其中FreeMarker抱怨没有myFunc
之类的东西。不知道你如何在myVar
中找到一个空字符串(也许还有一些与之相关的疏忽),但无论如何,你想做的事情都行不通。
答案 1 :(得分:0)
您正尝试从 myFunc()返回 myString 。你在哪里定义了 myString ? 它是在 myFunc()的父范围内吗?如果不是,有两种可能的情况!
可能的解决方案 - 使用父作用域中的某些值或 myFunc()
的当前作用域实例化变量<强>被修改强>
我恐怕会在 服务器 中编译 freemaker模板。替代解决方案是在脚本标记中包含整个freemaker调用站点,以便在编译到脚本客户端浏览器后在该模板中需要JavaScript时,它将基于客户端实例工作。