javascript - ejs中的if语句
问题描述
实际上,我的 layout.ejs 代码如下所示:
<!-- begin:: Page -->
<div class="m-page">
<%- partial('./partials/topnav.ejs') %>
<!-- begin::Body -->
<div class="m-body">
<%- partial('./partials/leftnav.ejs') %>
<div class="m-wrapper">
<%- body %>
</div>
</div>
<!-- end:: Body -->
<%- partial('./partials/footer.ejs') %>
</div>
<!-- end:: Page -->
<%- partial('./partials/side.ejs') %>
我想在导航栏和正文中使用不同的控制器,所以我这样划分视图。
现在我希望登录页面有所不同(根本没有导航栏)。我试图用 ng-show 隐藏导航栏,但它闪烁,我试图停止闪烁,但我仍然在几秒钟内看到左侧栏,这真的很烦人。
所以如果页面的位置是/login,我想尝试只显示正文。我不能为此使用控制器,因为已经用于导航栏和正文部分的控制器会发生冲突。
我想使用这样的东西:
<script type="text/javascript">
var path = this.window.location.pathname;
</script>
...
<% if (path == '/login') { %>
<%- body %>
<% } else{ %>
..the previous code..
<% } %>
但这会出现“未定义路径”错误。所以我四处寻找有关 EJS if 语句的信息,但充其量它总是属于 else 条件。
解决方案
您需要定义一个path
变量来保存您需要的正确值。
因此,在您相应的控制器中创建它并将其传递给您的视图,如下所示:
res.view(pathToYourView, { path: yourPath, ... });
推荐阅读
- python - 将 Flask 与用 Python 编写的核心应用程序一起使用
- python - 用 python 3 抓取 Json
- mysql - 在 MySQL 中寻找 IN 运算符的替代方案
- android - 问号出现在android studio中的数据库上是什么意思?
- javascript - 什么是 Google 的 reCAPTCHA v3 中的重复或超时错误消息
- ios - Swift ios 选择随机一对问题
- php - 将 id 传递给 url 上显示在表中的计数
- android - 如何使用 Glide 显示图像?
- mysql - MySQL在同一列上排序两次
- c# - 为什么 Dictionary.ContainsKey() & ToString() 会导致 GC Alloc?