【问题标题】:How to change something dynamically in the main handlebars skeleton?如何在主车把骨架中动态更改某些内容?
【发布时间】:2016-02-23 09:36:45
【问题描述】:

我使用handelbars 作为我的模板引擎,我很好奇我是否可以编辑主handelbars 文件。我现在能做的是这样的:

main.handlebars:

<html>
  <head>
  </head>
  <body>
    <div id='headerBox></div>
    <div id='contents'>{{{body}}}</div><!--all contents goes here-->
  </body>

当我使用这种方法时,我可以创建模板,例如home.handlebars 等

但是如果我想在 main.handlebars 中动态改变一些东西呢?例如,在我的网站中,我希望有一个登录表单,所以我希望在 main.handelbars 中有这样的内容:

<html>
  <head>
  </head>
  <body>
    <div id='headerBox>{{If logged in print name, if not print sign up}}</div>
    <div id='contents'>{{{body}}}</div><!--all contents goes here-->
  </body>
</html>

TLDR,如何在主把手骨架中动态更改某些内容。

谢谢!

【问题讨论】:

    标签: node.js express handlebars.js templating


    【解决方案1】:

    您需要编写一个 Handlebars Helper 函数。由于您没有包含有关如何验证登录的任何内容,因此我将编写一个小演示。

    在您的模板文件中:

    <div id='headerBox'>{{header}}</div>
    Handlerbars.registerHelper('header', function() {
       if (loggedIn) {
          return //however you're getting a username
       } else {
          return <a href="/signup.html">Sign Up</a>
       }
    });
    

    【讨论】:

    • 目前我正在使用默认系统学习 node.js。 (例如 main.handlebars 放在布局文件夹中),我所有的子视图都放在视图文件夹中。我在 node.js 之前只做了一点 php,所以我会有类似的东西: Handlerbars.registerHelper('header', function() { if (node.jsSession is set) { return username } else { return 注册 } });我如何将它与 express 结合到 node.js 中?
    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多