Handlebars 和 Node.js:#if !user 然后显示登录按钮

Posted

技术标签:

【中文标题】Handlebars 和 Node.js:#if !user 然后显示登录按钮【英文标题】:Handlebars and Node.js: #if !user Then Show Log In ButtonHandlebars 和 Node.js:#if !user 然后显示登录按钮 【发布时间】:2017-08-22 03:39:33 【问题描述】:

我正在使用 Node.js、Express 和 Handlebars 为模板引擎创建一个登录验证应用程序。

如果没有用户登录,我希望我的仪表板显示“登录”按钮。如果用户已登录,我不希望它显示。我没有登录就试过了...

#if user
    <a type = "button" class = "btn btn-default" href = "/users/login">Log In</a>
/if

有趣的是,这隐藏了元素。然后,当我将代码更正为应有的样子时……这……

#if !user
    <a type = "button" class = "btn btn-default" href = "/users/login">Log In</a>
/if

我收到此错误,

我以前从未使用过车把,所以我有点盲目。提前感谢任何帮助!

【问题讨论】:

你会想要使用内置的助手。在这种情况下,您应该使用#unless user,而不是说#if !user。 handlebarsjs.com/builtin_helpers.html - 你也可以创建自己的助手:handlebarsjs.com/block_helpers.html @KeplerlO 你如何获得用户?对我来说,它保存在 localStorage 中。那么,如果用户存在于 localStorage 中,我该如何查看车把? 【参考方案1】:

您可以从一开始就以相反的状态传递user 变量,也可以尝试使用#unless user

http://handlebarsjs.com/builtin_helpers.html

【讨论】:

如果用户保存在localStorage中,如何获取用户。换句话说,如果用户存在于 localStorage 中,我如何查看车把?

以上是关于Handlebars 和 Node.js:#if !user 然后显示登录按钮的主要内容,如果未能解决你的问题,请参考以下文章

使用 Node.js、Handlebars 和 Express 进行模板继承

使用 Node.js 和 express-handlebars 从 JSON 文件渲染 html

KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架之koahub-handlebars

Passport js,使用 Handlebars 获取用户输入

使用#each 显示handlebars.js 中的一些数据不显示

如何通过 Handlebars.precompile (vs CLI) 使用模板