0

我想将“totalPrice”增加 10,然后将其显示在车把模板中。这是我的车把文件的一些片段。结帐.hbs

<ul class="shipping__method">
       <li>Shipping <span>$ 10</span></li>
 </ul>
 <ul class="total__amount">
   <li>Order Total <span>Rs. {{increasePrice totalPrice}}</span></li>
</ul>

为此,我将其写在我的 app.js 文件中

  var expressHbs =  require('express-handlebars');
    app.engine('.hbs', expressHbs({ defaultLayout: 'layout', extname: '.hbs'}))
     app.set('view engine', '.hbs');
    expressHbs.registerHelper ('increasePrice', function (price) {
      price+=10;
      return price;
     })

然后我得到错误 expressHbs.registerHelper is not a function。然后我才知道要这样写

 var hbs = expressHbs.create({
 helpers: {
   increasePrice: function(price) {
     price+=20;
     return price;
   }
  }
})

然后我得到像“缺少助手:”increasePrice“”这样的错误。

4

1 回答 1

1

‍您在下面看到express此代码,一个使用and的示例代码express-handlebars

index.js

var express = require('express');

var app = express();

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

app.engine('.hbs', expressHbs({ defaultLayout: 'layout', extname: '.hbs'}))
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');
});

现在在视图中创建文件home.hbs,并将这段代码放在下面。

主页.hbs

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>My Example APP</title>
</head>

<body>

  <ul class="shipping__method">
    <li>Shipping: Total Price <span>$ {{ totalPrice }}</span></li>
  </ul>
  <ul class="total__amount">
    <li>Order Total <span>Rs. {{increasePrice totalPrice}}</span></li>
  </ul>
</body>
</html>

从上面的代码中,我希望你现在可以理解,你必须把你的函数放在哪里。

例如:您可以在我的代码框上看到

我希望它可以帮助你。

于 2020-01-26T08:20:08.127 回答