Node.js:EJS 2级包含参数

时间:2015-12-16 23:14:17

标签: javascript node.js ejs

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

    ->join('jobs','jobs.archived','=','0')
//
    ->where('archived','=','0')
//  
    ->with('jobs.archived')
//
    ->with('jobs')
//
    ->where('jobs.archived', '=', '0')

在这个标题部分中我还想包括几个方面,例如: G。登录或用户特定菜单,具体取决于用户是否登录。

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

事实上,我无法读取此级别的任何变量。无论是req.user还是类似的东西都无法访问。获取该信息或将参数传递给header.ejs的任何替代方法?

1 个答案:

答案 0 :(得分:0)

我刚刚找到了另一种方法(也是EJS - pass variable when include的解决方案)。对别人来说可能会派上用场。它不是我最喜欢的解决方案,因为我希望找到一种从内部访问变量的本地方式,而不必先将它们传递给我,所以我认为这是一种解决方法,但最终它的工作正常。

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

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

......无论您可以介绍多少层次,都可以访问它。