Увеличение переменной 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_security
msg str "переменная увеличивается только один раз.
Пожалуйста, помогите, если я делаю что-то не так. Спасибо рагхав
1 ответ
Это потому, что у вас есть два контекста для рассмотрения
- Контекст рендеринга (Velocity/VTL)
- Контекст выполнения (Браузер / Клиент)
Таким образом, при рендеринге у вас будет 1 выполнение в движке Velocity, который будет выполнять логику скорости, которая увеличивает $count_security. Это будет отображено как буквальное значение в выводе.
var count_security - это переменная JavaScript CLIENT, которая может быть изменена и обновлена клиентом.
Ваш код speed #set() не будет отображаться на выходе как "набор". #set является функцией VTL и не изменяет выходной поток.
Я надеюсь, что в этом есть смысл.