Mixing Freemarker and jQuery

Mixing Freemarker and jQuery

本文关键字:jQuery and Freemarker Mixing      更新时间:2023-09-26

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

自由标记模板

<#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 评估它,以便函数可以命名空间

知道如何实现这一点吗?

由于FreeMarker是一种服务器端模板语言,因此在JavaScript/jQuery启动之前,表达式${namespace}应该早已消失。换句话说,${namespace} 将被替换为命名空间变量 (FreeMarker) 包含的任何内容,然后 jQuery 才能看到它......如果查看呈现的页面源代码,会看到什么?

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

另外,您只需执行以下操作并保存一个<#assign/>:

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