У меня есть переменная 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}
.