将 $event.target 转换为 Angular 的 HTML 模板中的 HTMLInputElement



在模板的输入元素中,我希望将$event.target的值传递给onChange((函数。

<input (input)="onChange($event.target?.value)">

这会导致一个错误:Property 'value' does not exist on type 'EventTarget'.ngtsc(2339)。我的想法是$event.target默认具有EventTarget类型,应该以某种方式转换为HTMLInputElement类型,但我找不到实现这一点的方法。我发现的所有示例都建议传递$event本身,并在组件的代码中进行强制转换。禁用或降低严格性对我来说也不是一个选项。有没有办法直接在模板中设置类型?

提前谢谢。

传递$事件是一种可疑的做法

使用模板引用变量来获取用户的输入。使用模板引用变量获取输入数据比遍历$event对象更容易。

@Component({
selector: 'app-component',
template: `
<input #myInput (input)="onChange(myInput.value)">
`
})
export class AppComponent {
values = '';
onChange(value: string) {
this.values += value;
}
}

最新更新