【问题标题】:How do i make the ejs variable work that i send from nodejs?如何使我从 nodejs 发送的 ejs 变量工作?
【发布时间】:2021-05-15 06:17:47
【问题描述】:

我正在尝试获取一个从 nodejs 发送到 ejs 的变量来工作。但由于某种原因它不会,我不知道为什么。

这是 index.js:

var newOne = "Yes"

router.get('/main', ensureAuthenticated, (req, res) =>
  res.render('main',  {
    user: req.user,
    newOneInView : newOne
  })
)

这是在 main.ejs 文件中:

<%if (newOneInView == "Yes") { %>
  document.getElementById("avatar").src = "/static/images/Apocaliptic1.png";
  <% } %>   

所以我想要实现的是该变量将从 main.ejs 页面的 nodejs 中看到,但由于某种原因它不会更改图像 SRC。我在这里做错了什么?

【问题讨论】:

    标签: node.js variables ejs src


    【解决方案1】:

    在您的模板中,您需要确保将更改src 属性的代码放在元素之后的脚本中(或者您可以使用监听器来加载要加载的内容),例如:

    <body>
    <img id="avatar" src="/some-other-path"/>
    <script>
        <% if (newOneInView === "Yes") { %>
        document.getElementById("avatar").src = "/static/images/Apocaliptic1.png";
        <% } %>
    </script>
    </body>
    

    【讨论】:

    • 感谢 ejs 文件中的红色错误有点让我失望,但它现在似乎可以工作了。谢谢:)
    • 还有一件事@eol,如果我想通过按一个按钮来更改变量,我该怎么写?
    • 这是一个非常广泛的问题——您的意思是您想通过单击按钮来更改src?我建议您发布一个包含所有详细信息的新问题,以便我们更好地了解问题。
    • 嗯,不是 src,我的意思是它自己的变量,所以 newOneInView。因此,例如,如果我按下一个按钮,它将变为“否”。
    • 你知道我是怎么做到的吗? @eol
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    相关资源
    最近更新 更多