四個步驟使用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

但是比較負責, 等之後遇到實際運用在寫吧

留言