在javascript函数中增加VTL变量

时间:2011-05-11 09:06:18

标签: jquery javascript-events vtl

<script>    
    var count_security = 0;
    #set($count_security = 0)  

    function increment() {    
        count_security++;
        #set($count_security = $count_security + 1)
        alert(count_security);
        alert($count_security);    
    }
</script>

<html>
    <input type="button" onclick="increment" />
</html>

当我点击按钮调用上述函数时,“$count_security”变量只递增一次。它不会进一步递增。

如果我做错了,请帮忙。 谢谢 RAGHAV

1 个答案:

答案 0 :(得分:1)

这是因为你有两个需要考虑的背景

  • 渲染上下文(Velocity / VTL)
  • 执行上下文(浏览器/客户端)

因此,当渲染时,您将在Velocity引擎中执行 1 执行,该引擎将执行增加$ count_security的速度逻辑。这将在输出中呈现为文字值。

var count_security是一个JavaScript CLIENT 变量,可由客户更改和更新。

您的速度#set()代码不会作为“set”呈现到输出中。 #set是一个VTL函数,不会改变输出流。

我希望这是有道理的。