Передача функции в шаблон EJS для использования в событии onclick?

Я пытаюсь передать функцию в шаблон EJS и установить для нее событие onclick в шаблоне. Это возможно?

Другими словами, как-то так

var clickHandler = function() { console.log("I am in the click handler!"); }
var template = new EJS({ url: "/template.ejs"  });
var html = template.render({ clickHandler: clickHandler })
$("#target").html(html);

Где шаблон выглядит примерно так

<p onclick='clickHandler'>Click Me</p>

3 ответа

  • Вы должны поместить свою функцию js в файл ejs вместо файла сервера.
  • передайте имя функции вместо целого кода функции.

app.js

var html = template.render({ clickHandler:"func1();" })

EJS

<p onclick='<%= clickHandler %>'>Click Me</p>

<script>
  function func1(){
    console.log("I am in the click handler 1!"); 
  }
  function func2(){
    console.log("I am in the click handler 2!"); 
  }
</script>

Вы можете передавать аргументы, как показано ниже

Нажми меня

<button onclick="print('<%= item.id %>')">PRINT</button>

Для получения дополнительной информации: Как передать переменную во встроенный JavaScript с помощью механизма шаблонов EJS?

Другие вопросы по тегам