0
<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”变量只增加一次。它不会进一步增加。

如果我做错了什么,请帮忙。谢谢拉加夫

4

1 回答 1

1

这是因为您需要考虑两种情况

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

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

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

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

我希望这是有道理的。

于 2011-05-11T09:40:36.560 回答