传递函数为EJS模板用在onclick事件?

问题描述 投票:0回答:1

我试图给一个函数传递到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>
javascript templates ejs
1个回答
2
投票
  • 你应该把你的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>
© www.soinside.com 2019 - 2024. All rights reserved.