方便實用的ejs語法

之前在學(xué)習(xí)node的過程中接觸到express接著便選擇學(xué)習(xí)ejs做一下全棧,ejs和html是兼容的缸匪,記錄點(diǎn)常用語法流码。

以下是集中常用語法:

1.轉(zhuǎn)義輸出

<%= 變量名 %>

這個是轉(zhuǎn)義輸出,可以把變量名替換成自己需要的東西.
我們可以這么使用.

// js文件
ejs.renderFile('./views/test.ejs',{name:'wzz'},function(err,data){
  if(err){
    console.log(err);
  }else{
    console.log(data);
  }
});
<!-- ejs文件 -->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <%=name%>
</body>
</html>

最后我們可以發(fā)現(xiàn)name變量,在控制臺被替換成了wzz.

2.js代碼

<% Javascript代碼 %>

這里面可以寫javascript的代碼.我們可以這么使用

// js文件
ejs.renderFile('./views/test.ejs',{json:{arr:[
  {user:'a',pass:'1'},
  {user:'b',pass:'2'},
  {user:'c',pass:'3'},
  {user:'d',pass:'4'}
]}},function(err,data){
  if(err){
    console.log(err);
  }else{
    console.log(data);
  }
});
<!-- ejs文件 -->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <%for(var i=0;i<json.arr.length;i++){%>
    <div>user:<%=json.arr[i].user%> pass:<%=json.arr[i].pass%><div>
  <%}%>
</body>
</html>

然后我們發(fā)現(xiàn)控制臺循環(huán)輸出了div和里面的內(nèi)容

<div>user:a pass:1<div>
<div>user:b pass:2<div>
<div>user:c pass:3<div>
<div>user:d pass:4<div>

3.不轉(zhuǎn)義輸出

<%- 變量名%>

不轉(zhuǎn)義輸出可以把定義的字符串不轉(zhuǎn)義的輸出.
我們可以這么用,這邊我們省略了第二個不使用的json數(shù)據(jù)

// js文件
ejs.renderFile('./views/test.ejs',function(err,data){
  if(err){
    console.log(err);
  }else{
    console.log(data);
  }
});
<!-- ejs文件 -->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <% var str='<div><div>'; %>
  <%-str %>
  <%=str %>
</body>
</html>

輸出結(jié)果如下

  <div><div>
  &lt;div&gt;&lt;div&gt;

4.使用include引入外部的文件

<% include 文件的地址 %>

我們先新建一個txt文件,隨便在里面填上一點(diǎn)內(nèi)容供測試使用.
js文件和上面的一樣,所以省略,下面是ejs文件

<!-- ejs文件 -->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <% include ../content.txt %>
</body>
</html>

我們發(fā)現(xiàn)控制臺正確的輸出了我們想要的內(nèi)容

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
    hello world
</body>
</html>

最關(guān)鍵就是這個include用法,用的好會很省力
例如創(chuàng)建一個ejs文件存放公用代碼例如公用導(dǎo)航欄的代碼layout.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>管理首頁</title>
</head>
<body>
<nav >
    <div >
        <div >
            <a  href="/admin">后臺管理</a>
        </div>
        <div >
            <ul >
                <li><a href="/admin/user">用戶管理</a></li>

                <li >
                    <a href="#" >分類管理<span ></span></a>
                    <ul >
                        <li><a href="/admin/category">分類列表</a></li>
                        <li><a href="/admin/category/add">分類添加</a></li>
                    </ul>
                </li>
                <li  >
                    <a href="#" >內(nèi)容管理<span ></span></a>
                    <ul >
                        <li><a href="/admin/content">內(nèi)容列表</a></li>
                        <li><a href="/admin/content/add">內(nèi)容添加</a></li>
                    </ul>
                </li>
            </ul>
            <ul >
                <li >
                    <a href="#" ><%= userInfo.username%><span class="caret"></span></a>
                    <ul >
                        <li><a href="/">退出后臺管理</a></li>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
</nav>

然后你的后臺主頁就可以這樣寫

<%- include('./layout') %>
<div >
    <div >
        <h1>Hello, world! <%= userInfo.username %></h1>
        <p>歡迎來到我的博客后臺管理</p>
    </div>
</div>

這樣就能輸出整張完整的頁面,你在寫一些功能提示頁面的時候就不必重寫代碼更鲁,簡化了代碼結(jié)構(gòu)

這就是比較常用的4個小方法啦。

參考文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奇钞,一起剝皮案震驚了整個濱河市澡为,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌景埃,老刑警劉巖媒至,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谷徙,居然都是意外死亡拒啰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門完慧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谋旦,“玉大人,你說我怎么就攤上這事骗随「蛑” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵鸿染,是天一觀的道長指蚜。 經(jīng)常有香客問我,道長涨椒,這世上最難降的妖魔是什么摊鸡? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮蚕冬,結(jié)果婚禮上免猾,老公的妹妹穿的比我還像新娘。我一直安慰自己囤热,他們只是感情好猎提,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著旁蔼,像睡著了一般锨苏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上棺聊,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天伞租,我揣著相機(jī)與錄音,去河邊找鬼限佩。 笑死葵诈,一個胖子當(dāng)著我的面吹牛裸弦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播作喘,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼理疙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了徊都?” 一聲冷哼從身側(cè)響起沪斟,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎暇矫,沒想到半個月后主之,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡李根,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年槽奕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片房轿。...
    茶點(diǎn)故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡粤攒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出囱持,到底是詐尸還是另有隱情夯接,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布纷妆,位于F島的核電站盔几,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏掩幢。R本人自食惡果不足惜逊拍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望际邻。 院中可真熱鬧芯丧,春花似錦、人聲如沸世曾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽轮听。三九已至骗露,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蕊程,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工驼唱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留藻茂,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像辨赐,于是被迫代替她去往敵國和親优俘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評論 2 359