node.js - Handlebars:根据 url 禁用一些内容
问题描述
我有一个带有侧边栏的基本布局。当我在 /users/profile 上时,我想隐藏侧边栏。我如何使用 if 助手来做到这一点?有没有办法获取当前文件名?这是代码:
<div class="wrapper">
{{#if user}}
<nav id="sidebar">
<div class="sidebar-header">
<h3>Options</h3>
</div>
<ul class="list-unstyled components">
<li class="active">
<h1>
<a href="/users/search" style="color: white">Home</a>
</h1>
</li>
<li>
<h1>
<a href="/users/chatlist" style="color: white">Chat</a>
</h1>
</li>
<li>
<h1>
<a href="daaggiungere" style="color: white">About us</a>
</h1>
</li>
</ul>
</nav>
{{else}}
{{/if}}
如果用户登录侧边栏,则使用当前代码显示,否则隐藏。如果我在用户/个人资料上,我也想要同样的行为。
解决方案
您的路由由 Node.js 处理。在您的 Node.js 中的某个地方,您可能有关于用户打开时要做什么的说明,/users/chatlist
或者/users/search
,例如,您选择要呈现的模板。一旦您知道请求是针对 route 的/users/profile
,您就可以为您的把手使用 JSON 有效负载来正确呈现页面。您可以根据需要自定义该有效负载,包括添加一些帮助字段。例如,它可能看起来像:
{
user: { ... },
sidebar: {
visible: false
}
}
然后在您的模板中,您可以将其用于条件检查,例如:
{{#if sidebar.visible}}
<nav id="sidebar">
...
</nav>
{{/if}}
推荐阅读
- azure - 允许用户选择预设或可选参数 azure pipeline
- revit-api - 在 pyrevit 中运行 python 脚本时是否可以继续在 Revit 中工作?
- azure-active-directory - 如何从微软团队中获取团队成员和所有者?
- node.js - 无法通过节点邮件程序发送邮件。错误:在端口 25 处连接 ECONNREFUSED"
- javascript - 来自 MongoDB 的错误消息“操作 `disneys.insertOne()` 缓冲在 10000 毫秒后超时”
- artificial-intelligence - 如何在 Clips 中创建可分规则?
- javascript - 下载在 MS Teams 选项卡中生成的文件
- php - 如何为选择输入动态设置数组选项
- android - 为共享元素回调添加侦听器而不更改视图可见性
- bash - IntelliJ IDEA 中“在终端中执行”选项的意义