Как я могу реализовать условие на экспресс-руле? - PullRequest
0 голосов
/ 14 октября 2018
{{# each subcategory }} {{# each this}}
    {{#if {{this.titleen} == "kitckendinning"}}
        <li>
          <a href="#">
            <span class="pull-right">(56)</span>{{this.title}}</a>
        </li>
    {{/if}}
{{/each}} {{/each}}

Это приводит к некоторой ошибке:

Ожидается 'CLOSE_RAW_BLOCK', 'CLOSE', 'CLOSE_UNESCAPED', 'OPEN_SEXPR', 'CLOSE_SEXPR', 'ID', 'OPEN_BLOCK_PARAMS«STRING», «NUMBER», «BOOLEAN», «UNDEFINED», «NULL», «DATA», «SEP», получены «OPEN»

Эта ошибка может быть {{#if {{this.titleen} == "kitckendinning"}}

Как я могу реализовать это на экспресс-руле?

1 Ответ

0 голосов
/ 11 июня 2019

Вы можете сделать это с помощью вспомогательной функции.

https://github.com/ericf/express-handlebars

Вот пример. Вы также можете найти это по его ссылке.

Помощники Вспомогательные функцииили «помощники» - это функции, которые могут быть зарегистрированы с помощью Handlebars и могут вызываться в шаблоне.Помощники могут использоваться для преобразования вывода, итерации по данным и т. Д. Чтобы соответствовать духу шаблонов без логики, помощники - это то место, где должна быть определена логика.

Рули поставляются с некоторыми встроенными помощниками,например: with, if, each и т. д. Большинству приложений потребуется расширить этот набор помощников, включив в них логику и преобразования для конкретного приложения.Помимо определения глобальных хелперов на Handlebars, этот механизм просмотра поддерживает хелперы уровня экземпляра ExpressHandlebars через свойство конфигурации хелперов и хелперы уровня рендеринга через options.helpers при вызове методов render () и renderView ().

В следующем примере показаны помощники, указанные на каждом уровне:

app.js:

Создает супер простое приложение Express, в котором показан основной способ регистрации помощников уровня экземпляра ExpressHandlebars, и переопределите его наrender-level.

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

var app = express();

var hbs = exphbs.create({
    // Specify helpers which are only registered on this instance.
    helpers: {
        foo: function () { return 'FOO!'; },
        bar: function () { return 'BAR!'; }
    }
});

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

app.get('/', function (req, res, next) {
    res.render('home', {
        showTitle: true,

        // Override `foo` helper only for this rendering.
        helpers: {
            foo: function () { return 'foo.'; }
        }
    });
});

app.listen(3000);

views / home.handlebars:

Домашний вид приложения, в котором используются вспомогательные функции для визуализации содержимого.

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Example App - Home</title>
</head>
<body>

    <!-- Uses built-in `if` helper. -->
  {{#if showTitle}}
    <h1>Home</h1>
  {{/if}}

    <!-- Calls `foo` helper, overridden at render-level. -->
    <p>{{foo}}</p>

    <!-- Calls `bar` helper, defined at instance-level. -->
    <p>{{bar}}</p>

</body>
</html>

Надеемся, этобудет работать.

...