我想实现自己的文本输入 Web 组件,例如:
<x-text autocomplete="{{ true }}"></x-text>
问题是,当用户从自动完成列表中选择一个项目时,我的 Web 组件如何触发事件?我正在寻找这样的东西:
<x-text autocomplete="{{ true }}" on-select="itemSelected()"></x-text>
有没有办法做到这一点?
我想实现自己的文本输入 Web 组件,例如:
<x-text autocomplete="{{ true }}"></x-text>
问题是,当用户从自动完成列表中选择一个项目时,我的 Web 组件如何触发事件?我正在寻找这样的东西:
<x-text autocomplete="{{ true }}" on-select="itemSelected()"></x-text>
有没有办法做到这一点?
这是可能的,但可能不是很直观。
您不能绑定到 HTML 中的自定义事件。您必须在代码中手动执行此操作:
<x-foo id="wtvr"></x-foo>
_root.query('#wtvr').on['foo'].add((e) => print(e));
然后当组件触发事件时,您只需编写:
_root.on['foo'].dispatch(new CustomEvent('foo'));
在没有太多使用 Web 组件的情况下,从我的脑海中我只会为选择本身实现一个 onchange/onblur 函数。