【发布时间】:2021-08-03 03:45:54
【问题描述】:
我有一个自定义输入组件的问题,它应该可以替代<input>。除了单击以我的组件为目标的<label> 之外,一切正常。阅读docs on label,我希望在单击标签时在我的组件上获得click 事件,但我什么也没得到。
即我的 HTML 如下所示:
<label for="mycomponent">Some label</label>
<my-component id="mycomponent"></my-component>
my-component 是一个为click 实现@HostListener 的组件。我现在遇到的问题是click 处理程序永远不会通过单击标签来触发,如果我直接单击组件,它当然可以工作。如何对组件内单击的标签做出反应,以便手动将其转发到组件内的input?
我在这里创建了一个示例项目:https://github.com/Anteru/ng-component-focus-test
我想要的行为是两个标签的工作方式相同,即点击标签聚焦输入。对于用户来说,如果他们使用“普通的旧”输入或我喜欢的组件,应该不会有什么不同。
【问题讨论】:
-
请给我们
my-component的代码。您需要创建一个输入,该输入将采用一个作为输入 ID 的 ID,然后将该 ID 设置为基础输入标签
标签: javascript angular