我想要的只是调用一个js函数并传递一个参数,
我尝试了以下答案,但没有效果
如下面的Pug Github问题所述,
Event handlers like onclick can only be added through HTML or client-side JavaScript. This is not something Jade can help you with.
那么在Pug模板上添加onclick监听器的最佳做法是什么?
答案 0 :(得分:0)
我自己解决了这个问题:https://github.com/pugjs/pug/issues/2933
a.postTitle(onclick=`viewPost(${JSON.stringify(file)})`)= file.name
然后,我可以在viewPost
函数接收一个对象,
照顾`符号
答案 1 :(得分:0)
那么在Pug模板上添加onclick侦听器的最佳实践是什么?
根据我的经验,我建议将带有事件处理程序逻辑的script
标记添加到模板中,并声明onclick
而不带有反引号,重音符号和字符串插值标记:
`
某些UglifyJs生成步骤(通常在Prod配置中很常见)会导致字符串插值标记失败:
this-will-${fail}-in-some-UglifyJs-versions
我的意思的例子如下:
// my template.pug
script
function myFunction(varA, varB){
// do something...
}
- var someVar = "this is a string, but the value could come from anywhere, really"
div(onclick='myFunction(' + '"' + someVar + '"' + ',' + '"' + someVar + '"' + ')')