四個步驟使用Helper (express-handlebars)
目的
handlebars檔案(已下簡稱.hbs)中的{{#if }} 只能依照布林值做反應, 不能夠做 === 這樣的判定
要讓.hbs也能做等於的判定可以使用helper來實現
Step 1.
創建一個hbs-helper.js 檔案, 檔名跟位置沒有限定. 我這邊是直接放在根目錄. 也可以放在public
Step 2.
hbs.helper.js 中 輸出一個定義好helper的函式
其中 eq 就是之後要用來呼叫的helper的函式名稱
Step 3.
於app.js呼叫此檔案, 並於app.engine中加入helper的設定
const hbsHelper = require('./hbs-Helper')
app.engine('hbs', exphbs.engine({
defaultLayout: 'main',
extname: 'hbs',
helpers: hbsHelper //這邊加入helper的設定
}))
Step 4.
現在就可以.hbs中 使用定義好的helper做判定了
原本的 {{#if}} 後空格, 接一個括號 (A, B, C)
A = 定義的函式名稱
B = 函式的第一個參數, 這邊是函式中的 a
C = 函式的第二個參數, 這邊是函式中的 b
都是用空格隔開
{{#if (eq this.categoryId 1)}}
<i class="fa-solid fa-house fa-2x item-icon m-1"></i>
{{/if}}
補充
Helper裡面還有一個很常用的東西是option
但是比較負責, 等之後遇到實際運用在寫吧
留言
張貼留言