簡體   English   中英

如何注冊自定義 Handlebars 助手?

[英]How to register custom Handlebars helpers?

經過長時間的搜索,我似乎仍然無法找到有關將自定義車把助手放在哪里的太多信息。 我是否將它們放在網頁的 .hbs 文件中的<script>中? 我是否將它們放在 app.js 中? 我是否將它們放在頁面的路由器中?

順便說一下,這是我想注冊的助手:

Handlebars.registerHelper("last", function(array) {
    return array[array.length - 1];
});

我假設一旦我將該代碼放在某個地方,我就可以通過使用{{last foo}}在任何頁面上使用它,對嗎?

例如,您可以查看以下代碼:

var express = require('express');

var app = express();

var expressHbs =  require('express-handlebars');

app.engine('.hbs', expressHbs({ defaultLayout: 'layout', extname: '.hbs'}).engine)
app.set('view engine', '.hbs');

var hbs = expressHbs.create({});

// register new function
hbs.handlebars.registerHelper('increasePrice', function(price) {
  price+=10;
  return price;
})

app.get('/', (req, res) => {
  res.render('home', {
    layout: false,
    totalPrice: 300,
  });
})

app.listen(3000, () => {
  console.log('Server is up');
});

上面的代碼只是一個例子。

你可以在這個網站上看到一個例子: https : //codesandbox.io/s/elegant-fog-1n61o

我希望它能幫助你。

如果你想使用express-handlebars並為.hbs模板注冊助手,你可以按照我的回答。

如何使把手助手成為全球性的(在 expressjs 中)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM