将函数传递给EJS模板以用于onclick事件?

时间:2016-07-26 16:27:37

标签: 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);

模板看起来像

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

2 个答案:

答案 0 :(得分:1)

  • 您应该将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>

答案 1 :(得分:0)

您可以传递以下参数

')”>点击我