将函数传递到 EJS 模板以在 onclick 事件中使用?

use*_*416 7 javascript templates ejs

我正在尝试将函数传递到 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);
Run Code Online (Sandbox Code Playgroud)

模板看起来像这样

<p onclick='clickHandler'>Click Me</p>
Run Code Online (Sandbox Code Playgroud)

Rad*_*eng 4

  • 您应该将js函数放在文件中.ejs而不是服务器文件中。
  • 您应该传递函数名称而不是整个函数代码。

应用程序.js

var html = template.render({ clickHandler:"func1();" })
Run Code Online (Sandbox Code Playgroud)

埃杰斯

<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>
Run Code Online (Sandbox Code Playgroud)

  • 现在,我如何通过这样做来传递参数? (6认同)