javascript - 混合 Freemarker 和 jQuery

标签 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>

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

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

最佳答案

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

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

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

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

${app.namespace}_init();

关于javascript - 混合 Freemarker 和 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27030961/

相关文章:

javascript - 如何为文本之间的某些字符添加文本样式

wordpress - nivoSlider 和外部 jquery 之间的 jquery 冲突

jquery css 在不同背景的部分之间平滑滚动

javascript - 按键时从动态 dom 获取文本区域值

java - 如何在 Freemarker DropWizard 中使用按钮调用方法

javascript - 单击动态生成的元素不工作jquery

javascript - HTTP 数据流

freemarker - 如何在 freemarker 中查看日期?

spring - 如何使用Freemarker和Spring进行分页?

javascript - 如何在 ng-repeat 中显示接下来的 15 个项目?