2015-12-16 66 views
0

在服務器端使用帶EJS的MEAN環境,我定義了許多部分/模板,其中之一是我的標題部分。Node.js:EJS 2級包含參數

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

在這個標題部分我還想包括幾個區域, G。一個登錄或用戶特定的菜單,取決於用戶是否登錄。

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

事實上,我無法讀取這個級別的任何變量。 req.user和任何類似的東西都不能被訪問。任何替代方法來獲取該信息或可能傳遞參數到header.ejs中?

回答

0

我剛剛發現了另一種方式來做到這一點(也是解決方案:EJS - pass variable when include)。可能會派上用場。這不是我最喜歡的解決方案,因爲我希望能夠從本地訪問變量的本地方式,而不必先傳遞它們,所以我認爲這是一種解決方法,但最終它的工作原理很好。

渲染頁面,其中首先包括(L1)插入時,只要確保你的數據傳遞,要處理上下級這樣的...

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

.. 。無論您可能引入多少層次的包含,它都是可訪問的。