![](/img/trans.png)
[英]How to include js files in my EJS templates in node.js using express 3.x
[英]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.