说明:我正在使用onChange函数来查找是否有人键入@
问题:在我键入时,每次都会检查整行,这会使键入变慢。我想修改我的代码,以便仅检查输入的最后一个字母。
我的代码:
home.html
<ion-textarea #chat [(ngModel)]="tag" rows="1" cols="10" placeholder="Type your message..." (ngModelChange)='onChange($event)'></ion-textarea>
home.ts
onChange(eve)
{
if(eve.match(/@/g).length > 0)
这使打字体验变慢,因为它每次都会检查整行,我希望它应该只检查最后键入的字母。
尝试这样:
模板:
<ion-textarea #chat [(ngModel)]="tag" rows="1" cols="10" placeholder="Type your message..." (keydown)="onType($event)"></ion-textarea>
打字稿:
onType(event) {
if (event.key == '@') {
console.log("@ typed")
}
}
您可以使用按键事件:
<input (keydown)="onKeydown($event)">
然后您可以像这样处理它:
onKeydown(event) {
if(event.key === "@")
{
// your code
}
}
但是,如果您只想检查字符串中的最后一个字符是否为onChange,则可以这样进行:
if(eve.slice(-1) === '@') {}
您可以尝试查找最后的字母。
onChange(eve) {
eve = eve.split('')[eve.length-1]
if(eve.match(/@/g).length > 0)
...
}