Увеличение переменной VTL в функции JavaScript

<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_securitymsg str "переменная увеличивается только один раз.

Пожалуйста, помогите, если я делаю что-то не так. Спасибо рагхав

1 ответ

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

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

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

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

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

Я надеюсь, что в этом есть смысл.

Другие вопросы по тегам