Smarty Переменные не меняются изнутри Javascript - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть переменная smarty, присвоенная false. Затем в Javascript я буду запускать функцию, которая будет возвращать, должна ли эта переменная smarty измениться на true или остаться false. В настоящий момент я всегда получаю else часть оператора js if.

Это очень простой пример, но он дает смысл ... Если сгенерировано случайное число is 1 изменить переменную smarty на true, иначе оставить значение false.

{assign var= "testB" value= false }

<script language="JavaScript" type="text/JavaScript">
{literal}
   let randNum = Math.round(Math.random());
   if(randNum == 1){
      {/literal} "{$testB = true}" {literal}
   } else {
      {/literal} "{$testB = false}" {literal}
   }
   console.log( randNum );
   console.log( {/literal} "{$testB}" {literal} );
{/literal}
</script>

Чего мне не хватает? Это был долгий день, так что это может быть что-то действительно очевидное. Я пропускаю: -)

Спасибо

ОБНОВЛЕНИЕ:

Если я бегу console.log() внутри операторов if он показывает мне, что он правильно выполняет итерацию оператора if, но переменная smarty всегда изменится на false или на то, что я установил внутри {else}.

let randNum = Math.round(Math.random());
if(randNum == 1){
  {/literal} "{$testB = true}" {literal}
  console.log('here');
} else {
  {/literal} "{$testB = false}" {literal}
  console.log('here2');
}

То есть с Приведенный выше код, если randNum равен 1, он будет консоль журнала 'здесь', но переменная smarty будет ложной - или как я ее установил внутри {else}.

...