Значение параметра раскрывающегося списка, установленное в шаблоне руля nodejs - PullRequest
0 голосов
/ 28 мая 2019

У меня есть шаблон Handlebars.js, как показано ниже, где мне нужно установить значение параметра, которое выбирается динамически из данных, отображаемых из nodejs

    <select class="form-control" name="c_level" value="{{course.c_level}}" required>
        {{#levelc course.c_level}}
            {{#each level}}  
            <option value="{{this.level}}" name = "c_level">{{this.level}}</option>
            {{/each}}
        {{/levelc}}
    </select>

Вывод вышеуказанного кода

    <select class="form-control" name="c_level" value="C Level" required="">
        <option value="C Level" selected="">C Level</option>  
        <option value="Safety" name="c_level">Safety</option>
        <option value="D Level" name="c_level">D Level</option>
        <option value="C Level" name="c_level">C Level</option>
        <option value="B Level" name="c_level">B Level</option>
        <option value="A Level" name="c_level">A Level</option>
        <option value="Customer Courses" name="c_level">Customer Courses</option>
        <option value="Special Courses" name="c_level">Special Courses</option>
    </select>

Мой вспомогательный js-файл

    Handlebars.registerHelper('levelc', function( value, options ){
            var $el = $('<select />').html( options.fn(this) );
            $el.find('[value="' + value + '"]').attr({'selected':'selected'});
            return $el.html();
        });

Файл js моего сервера, где объявлен помощник,

    const exphbs = require('express-handlebars');
    app.engine('hbs', exphbs({ extname: 'hbs', helpers: require("./helpers/handlebars").helpers, defaultLayout: 'mainLayout', layoutsDir: __dirname + '/views/layouts/' }));

В качестве выходного значения для части html указывается значение атрибута выбора «Уровень C», которое должно быть установлено в качестве выбранного значения в опции

        <select class="form-control" name="c_level" value="C Level" required=""> 
        <option value="Safety" name="c_level">Safety</option>
        <option value="D Level" name="c_level">D Level</option>
        <option value="C Level" name="c_level" selected>C Level</option>
        <option value="B Level" name="c_level">B Level</option>
        <option value="A Level" name="c_level">A Level</option>
        <option value="Customer Courses" name="c_level">Customer Courses</option>
        <option value="Special Courses" name="c_level">Special Courses</option>
    </select>

Я получаю сообщение об ошибке, которое не могу определить в течение 2 дней

  (function (exports, require, module, __filename, __dirname) { 
  Handlebars.registerHelper('levelc', function( value, options ){
                                                          ^

     ReferenceError: Handlebars is not defined
...