Увеличение переменной VTL в функции JavaScript - PullRequest
0 голосов
/ 11 мая 2011
<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 Ответ

1 голос
/ 11 мая 2011

Это потому, что у вас есть два контекста для рассмотрения

  • Контекст рендеринга (Velocity / VTL)
  • Контекст выполнения (браузер / клиент)

Таким образом, при рендеринге у вас будет выполнение 1 в движке Velocity, который будет выполнять логику скорости, которая увеличивает $ count_security.Это будет отображаться в виде буквального значения в выводе.

переменная count_security - это переменная JavaScript CLIENT , которая может быть изменена и обновлена ​​клиентом.

Ваша скоростьКод #set () не будет отображаться в выводе как "набор".#set является функцией VTL и не изменяет поток вывода.

Надеюсь, это имеет смысл.

...