2016-01-27 78 views
1

我是Node/EJS的新手。所以需要您澄清創建新路線。我可以在Node js中使用EJS模板系統輕鬆集成靜態html文件。但是,我不能實現路由(使用路由插入另一個模板)。Node JS - 使用路由器添加更多頁面(ejs模板)

我的代碼:觀點/ index.ejs

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <% include ./templates/head.ejs %> 
</head> 
    <body class="skin-blue"> 
     <div class="wrapper"> 
      <% include ./templates/header.ejs %> 
       <section class="content"> 
       <div class="content-section container"> 
        <div class="row"> 
          <% include ./contents/aboutus.ejs %> //aboutus page is rendering  
        </div> 
       </div> 
      </section> 
      <% include ./templates/footer.ejs %>  
     </div> 
    <% include ./contents/help-popup.ejs %> 
    <% include ./templates/jsfiles.ejs %> 
    </body> 
</html> 

這裏,顯然aboutus.ejs正確的身體部位內工作。現在我想通過點擊aboutus.ejs中的鏈接來調用careers.ejs。頁眉和頁腳不應該改變。如何添加&通過路由渲染careers.ejs?

+0

你的問題是,如何使用ejs渲染頁面的特定部分,例如僅內容? – rmjoia

+0

@rmjoia是的,就像SPA .. – EverGreen

+0

據我所知。你不能。 ejs不支持佈局,至少使用快遞4.我一直在尋找... – rmjoia

回答

1

我想你期待像JADE這樣的佈局系統。這可以通過npm包EJS-Locals來實現。其中不用調用ejs文件,你可以給身體部分的HTML。

例如:樣板

<!DOCTYPE html> 
<html> 
    <head> 
    <title>It's <%=who%></title> 
    <%-scripts%> 
    <%-stylesheets%> 
    </head> 
    <body> 
    <header> 
     <%-blocks.header%> 
    </header> 
    <section> 
     <%-body -%> 
    </section> 
    <footer> 
     <%-blocks.footer%> 
    </footer> 
    </body> 
</html> 

aboutus.ejs:

<% layout('boilerplate') -%> 
<% script('foo.js') -%> 
<% stylesheet('foo.css') -%> 
<h1>I am the <%=what%> list </h1> 
<% block('header', "<p>I'm in the header.</p>") -%> 
<% block('footer', "<p>I'm in the footer.</p>") -%> 

career.ejs:

<% layout('boilerplate') -%> 
<% script('foo.js') -%> 
<% stylesheet('foo.css') -%> 
<h1>I am <%=what%> Programmer in USA </h1> 
<% block('header', "<p>I'm in the header.</p>") -%> 
<% block('footer', "<p>I'm in the footer.</p>") -%> 

所以,在此您可以包括使用EJS-當地人其他模板。