【问题标题】:Get name of template inside a pugjs template获取 pugjs 模板中的模板名称
【发布时间】:2018-06-19 19:47:32
【问题描述】:

我正在使用 pugJS 渲染我的页面,如下所示:

res.render('test',renderVars)

此渲染使用布局,我需要在其中获取“测试”字符串。我的问题是:如何获取“测试”字符串以便在布局中使用它?我可以在“renderVars”中添加一个新变量,但我确信有更好的解决方案。

换句话说:我怎样才能在这个模板中得到一个模板的名字?例如#{templatename} 之类的?

提前致谢!

【问题讨论】:

    标签: node.js express pugjs


    【解决方案1】:

    恐怕你不能这样做。 res.render 第一个参数是渲染视图模板并不意味着存储数据。您可以在 renderVars 中设置“测试”,也可以在会话中添加它,然后就可以在布局中使用它。

    在路由之前和会话设置之后将此代码添加到您的 app.js 中

    //inject session into res.locals so can be rendered in UI
    app.use(function (req, res, next) {
      if (req.session.message) {
        res.locals.message = req.session.message;
        delete req.session.message;
      }
      res.locals.session = req.session;
    
      next();
    });
    

    在视图模板中,您可以使用访问 res.locals.session 数据

    #{session.theAttributeYouWant)
    

    【讨论】:

    • 我认为我的问题的表述具有误导性:我知道第一个参数是视图模板的名称。我的问题是:如何在此视图模板中获取视图模板的名称? :)
    • @djcaesar9114 呃,我不认为这是可能的,也许是硬编码文件中的文件名?
    猜你喜欢
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    • 2011-03-10
    • 1970-01-01
    • 2010-11-06
    • 2015-01-11
    相关资源
    最近更新 更多