我目前有一个对象,我想将其作为参数传递给模板文字内部的另一个函数:
var template = `<button onclick="onclick(${object})"></button>`;
但是,这会使参数成为字符串值:[object Object]
并且不传递参数。有什么方法可以将此参数传递给函数吗?
非常感谢您。
答案 0 :(得分:0)
您将需要将您的对象表示为字符串。您可以使用JSON.stringify
:
var template = `<button onclick="handleClick(${JSON.stringify(obj).split('"').join(""")})"></button>`;
您需要转义双引号(此代码可以)和单引号(如果用于onclick事件)(此代码不会)。
onclick =“ onclick”实际上调用window.onclick-意味着它可以在任何地方获得点击。您应该使用其他名称(例如handleClick)。
出于这种原因,我建议不要使用内联事件侦听器,因为如果您需要采用内容安全策略,它们可能会引起问题。