繁体   English   中英

Node.js:EJS 2级包含参数

[英]Node.js: EJS 2-level include with parameter

在服务器端使用带有EJS的MEAN环境,我定义了许多局部/模板,其中之一是我的标头部分。

//First include level (L1)    
<% include ../partials/header %>

在此标题的部分内容中,我还希望包括几个区域,例如,登录或用户特定的菜单,具体取决于用户是否登录。

//Second include level (L2)
//Inside header.ejs
<% if (req.user) { %> //---> req.user undefined
   <% include ../partials/login %>
<% } else { %>
   <% include ../partials/usermenu %>
<% } %>

实际上,我无法读取此级别的任何变量。 无法访问req.user或任何类似内容。 是否可以获取该信息或将参数传递至header.ejs?

我只是找到了另一种方法(也是解决方案: EJS-在include时传递变量 )。 可能对其他人派上用场。 这不是我最喜欢的解决方案,因为我曾希望找到一种从内部include中访问变量而不必先传递它们的本地方法,因此我认为这是一种解决方法,但最终效果很好。

渲染插入第一个包含(L1)的页面时,只需确保传递您要在较低级别处理的数据即可,例如...

app.route('/*')
.get(function(req, res) {
   res.render('pages/foo', { 
      login: req.user
   });
});

...,无论您要引入多少个包含层,它都将可访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM