gpt4 book ai didi

javascript - Angular2 在按键或按键按下时获取整个输入值

转载 作者:太空狗 更新时间:2023-10-29 17:50:22 25 4
gpt4 key购买 nike

我可能做错了,因为我做的事情很简单,但我的解决方案很容易出错。

我想做的就是在输入文本发生变化时(按下按键时)在第 3 方组件上执行过滤器。

第一种无效的方法:

<input type="text" placeholder="Name Fitler" [(ngModel)]="NameFilter" (keydown)="keyDown($event)" />

问题是在用最新字符更新 NameFilter 之前执行按键,所以我的过滤器落后一个字符

第二种无效的方法

keyDown(event:KeyboardEvent){
var input = <HTMLInputElement>event.srcElement;
this.NameFilter = input.value + event.key; // <-- have to add the latest character
this.filterChanged();
}

这种方法可行,但容易出错。 input.value 没有最新的字符,所以我添加了它,但需要担心奇数键等。如果可以的话,我想避免 keyCode 过滤。

还有别的事件吗?或者更好的方法来获得该值(value),包括最新的按键? (我不想等待按键或输入)

更新这完美地工作

<input type="text" placeholder="Name Fitler" [(ngModel)]="NameFilter" (ngModelChange)="filterChanged()" />

最佳答案

您可以使用 (ngModelChange)="..."

(ngModelChange)="keyDown($event)"

ngModelChange[(ngModel)]="NameFilter" 更新 NameFilter 时发出。

[ngModel]) 中的 () 只是

的缩写形式(语法糖)
[ngModel]="NameFilter" (ngModelChange)="NameFilter = $event"

另见 https://angular.io/docs/ts/latest/guide/template-syntax.html#!#two-way

关于javascript - Angular2 在按键或按键按下时获取整个输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41043961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com