Как передать функцию как переменную в экспресс-руле - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь передать функцию как переменную и вызвать эту функцию, используя onclick = "" но функция выполняется перед передачей.

Вот код.

seminar.js

function getco(){
  console.log('hello');
}
router.get('/add',(req,res)=>{
  res.render('cms/seminar/add',{
    getco:getco()
  });
});

add.handlebars

<form action="/cms/seminar/add" method="post">
<div class="form-group">
          <label for="sel1">Game Name of the Seminar</label>
            <select class="form-control" id="seminar_gamename" name="seminar_gamename" required onclick="getco">
              <option value="pubg">Pubg</option>
              <option value="candy_crush">Candy Crush</option>
              <option value="fortnite">Fortnite</option>
              <option value="mortal_combat">Mortal Combat 11</option>
              <option value="far_cry_city">Far Cry City Dowm</option>
              <option value="fortnite">Fortnite</option>
              <option value="prince_of_persia">Prince of Persia:The Forgotten Sand</option>
            </select>
        </div>
</form>

// Но результат, который я получаю - «привет», даже не нажимая

1 Ответ

0 голосов
/ 12 мая 2019

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

Попробуйте удалить () из getco

`function getco(){
  console.log('hello');
}
router.get('/add',(req,res)=>{
  res.render('cms/seminar/add',{
    getco:getco
  });
});`

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

onclick="getco()"

...