Проблемы с помощником на руле + экспресс - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь использовать помощников, но я получаю эту ошибку: ReferenceError: a is not defined

Я пытаюсь отобразить home.hbs под каталогом просмотров.потому что он содержит такие вещи, как:

 <li class="{{#if_eq title "Home"}}active{{/if_eq}}">
    <a href="/">Home</a>
 </li>

это app.js

const hbs = require('express-handlebars');

// Handlebars configuration

app.engine('hbs', hbs({
  extname: 'hbs',
  layoutsDir: path.join(__dirname, '/views/layouts/'),
  partialsDir: path.join(__dirname, '/views/partials/'),
  helpers: {
    if_eq: function () {
      if (a == b) {
        return opts.fn(this);
      } else {
        return opts.inverse(this);
      }
    },
    getStringifiedJson: function (value) {
      return JSON.stringify(value);
    }
  }
}));


app.set('view engine', 'hbs');

Я пытался использовать документы руля, но кажется, что естьтак много версий на NPM, таких как hbs, express-handlebars, exphbs.Я немного растерялся.

1 Ответ

0 голосов
/ 16 октября 2018

В функции нет аргументов.Отсюда и ошибка.Это должно работать

if_eq: function (a, b, options) {
      if (a == b) {
        return opts.fn(this);
      } else {
        return opts.inverse(this);
      }
}
...