我有一个简单的 Node.js 网络应用程序,具有通过护照登录/注册的功能。在导航栏中,我有两个按钮:登录和注册。我想做的是当用户在注册页面上时,只在导航栏中显示登录按钮,当用户在登录页面上时只在导航栏中显示注册按钮。如何在我的 header ejs 文件中实现此目的?
我试过这个:
<% if (document.URL.contains("login")) { %>
<li><a href="/login">Sign In</a></li>
<% } else { %>
<li><a href="/register">Sign Up</a></li>
<% } %>
这个问题是文档变量没有在我的 ejs locals 中定义......我不认为我可以将它定义为本地?至少当我尝试时,我得到一个错误,即文档未定义......这是有道理的,因为这是在 app.js 文件中完成的。
我怎样才能实现这个功能?
谢谢!
最佳答案
当您呈现您的 ejs 文件时,提供一个带有标题的 json 对象。
以下将包含在您的快速 route :
app.route('/login')
.get((req, res) => {
res.render('loginTemplateEjs', { title: 'login'});
});
然后在你的ejs代码中:
<% if (title == "login" { %>
<li><a href="/login">Sign In</a></li>
<% } else { %>
<li><a href="/register">Sign Up</a></li>
<% } %>
关于javascript - 在 .ejs 文件中获取当前页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43432250/