是否可以访问和修改从Pug中的Express传递的变量?

时间:2019-02-03 19:56:15

标签: javascript node.js pug

我正在制作一个简单的数学游戏,想将一系列问题传递给Pug。如果用户正确回答了一个问题,我想更新分数并显示一个新问题。但是,我不确定如何通过Pug动态访问和更新网站...

在Express中传递值:

return res.render('play', { questions: questionArray, score: 0});

Pug文件:

p#question #{questions[score].num1} #{questions[score].operation}  #{questions[score].num2} 
  p#score #{score}
  input#answer
  button.btn.btn-primary(onclick='checkAnswer(questions[score], score)') Enter

当我单击按钮检查答案时,在控制台中出现错误“在HTMLButtonElement.onclick上未定义问题”。我检查了如何在Pug中使用onclick,但似乎没有用。有人建议使用JSON.stringify,但似乎没有用。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在此处使用PUG String Interpolation

p#question #{questions[score].num1} #{questions[score].operation}  #{questions[score].num2} 
    p#score #{score}
    input#answer
    button.btn.btn-primary#check-button Enter

script(type="text/javascript").
    document.getElementById('check-button').addEventListener('click', function() {
        let score = !{score};
        let qScore = !{quesstions[score]}
        // put things in "checkAnswer" function here
    });

希望这行得通! :)