混合Freemarker和jQuery

时间:2014-11-20 02:55:03

标签: javascript jquery freemarker

我在页面上有一个freemarker模板和jQuery。 该问题与使用$进行评估的两种语言相关

Freemarker模板

<#assign mode = app.mode>
<#assign namespace = app.namespace>
<#if mode =="view">
 <script>
  //   execute some script..
  <script>
<#elseif mode == "edit">
 <script>
   ${namespace}init();
   function ${namespace}init(){
       //init code..
   }
 <script>
</#if>

在脚本标签中我想命名函数,但我得到namespace is not defined.我认为它的jquery试图评估$ {namespace}但我希望freemarker评估它以便函数可以命名空间

知道如何实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

由于FreeMarker是服务器端模板语言,因此表达式$ {namespace}应该在JavaScript / jQuery启动之前就已经过去了......换句话说,$ {namespace}将被命名空间变量(FreeMarker)包含的任何内容替换在jQuery可以看到之前......如果你查看呈现的页面源,你会看到什么?

如果您尝试在函数声明之后调用namespace_init()会发生什么情况(不应该是问题因为您没有将函数分配给变量,但谁知道...)

另外,您可以执行以下操作并保存一个&lt; #assign /&gt;:

function ${app.namespace}_init() {
    // your init code
}

${app.namespace}_init();
相关问题