在 Lit-Element 自述文件中,为什么事件处理程序示例需要变量替换:
event handler: html`<button on-click="${(e) => this._clickHandler(e)}"></button>`
即 - 我不明白表达式的哪一部分需要"替换" - 为什么事件处理程序不能只是硬编码,而不被包装在动态替换中?
实验表明,如果没有模板文本,该值将被解释为内容属性的值,该属性只能是字符串。
因此,以下 [不正确] HTML :
<button id="x" on-click="(e) => console.log(e)"> <!-- DON'T DO THIS -->
等效于将字符串分配给on-click
属性,而不是设置click
-event 处理程序:
document.getElementById('id').setAttribute('on-click', '(e) => console.log(e)');
您可以在此演示中通过在按钮上运行getEventListeners()
来确认此行为。