如何在Express-Handlebars中将函数作为变量传递

时间:2019-05-12 11:26:39

标签: node.js function express mongoose express-handlebars

我试图将函数作为变量传递,并使用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 :(得分:0)

如上面的评论中所述,您直接调用该函数,而不是将其传递给前端。

尝试从 getco

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

这允许您将方法作为变量传递,然后在前端使用,

onclick="getco()"